Home > Software design >  R ggplot geom_point legend appears as a dashed line rather than a point
R ggplot geom_point legend appears as a dashed line rather than a point

Time:07-13

I am trying to add a legend to a linear regression plot. Everything works find except that the geom_point legend appears as a dashed line rather than a point.

How can I fix this?

Sample Data (df):

structure(list(TMin = c(9.27700042724609, 9.36499977111816, 9.5310001373291, 
9.67700004577637, 9.69699954986572, 9.86499977111816, 9.95899963378906, 
10.0900001525879, 10.2849998474121, 10.4370002746582, 10.5170001983643, 
10.5790004730225, 10.6969995498657, 10.7930002212524, 10.9329996109009, 
11.0109996795654, 9.36400032043457, 9.4709997177124, 9.62600040435791, 
9.77600002288818, 9.95100021362305, 10.1199998855591, 10.2729997634888, 
10.3730001449585, 10.5500001907349, 10.668999671936, 10.7709999084473, 
10.8199996948242, 10.8920001983643, 10.9840002059937, 11.125, 
11.1909999847412, 11.2919998168945, 11.5319995880127, 11.7399997711182, 
11.9340000152588, 9.3730001449585, 9.58699989318848, 9.79800033569336, 
9.9980001449585, 10.2040004730225, 10.4370002746582, 10.5459995269775, 
10.6020002365112, 10.75, 10.875, 10.9630002975464, 11.0100002288818, 
11.039999961853, 11.1890001296997, 11.1909999847412, 11.2659997940063, 
11.3730001449585, 11.6090002059937, 11.831000328064, 9.58600044250488, 
9.80399990081787, 9.99699974060059, 10.2569999694824, 10.4630002975464, 
10.6219997406006, 10.710000038147, 10.7700004577637, 10.9350004196167, 
11.0570001602173, 11.0640001296997, 11.1709995269775, 11.2290000915527, 
11.1949996948242, 11.201000213623, 11.2709999084473, 11.4359998703003, 
11.6829996109009, 11.9020004272461, 9.81400012969971, 9.97900009155273, 
10.2399997711182, 10.4370002746582, 10.5939998626709, 10.7270002365112, 
10.7379999160767, 10.8269996643066, 10.9079999923706, 11.0120000839233, 
11.1160001754761, 11.2770004272461, 11.2639999389648, 11.25, 
11.1940002441406, 11.2629995346069, 11.4219999313354, 11.6750001907349, 
11.923999786377, 10.0500001907349, 10.2650003433228, 10.4449996948242, 
10.5970001220703, 10.6800003051758, 10.7729997634888, 10.9770002365112, 
11.0480003356934, 11.1099996566772, 11.2959995269775, 11.3409996032715, 
11.3070001602173, 11.2889995574951, 11.253999710083, 11.2749996185303, 
11.298999786377, 11.4280004501343, 11.6549997329712, 11.8920001983643, 
10.3070001602173, 10.4099998474121, 10.5930004119873, 10.8409996032715, 
10.9099998474121, 10.8760004043579, 11.1719999313354, 11.3299999237061, 
11.4320001602173, 11.5710000991821, 11.5649995803833, 11.414999961853, 
11.331000328064, 11.2829999923706, 11.3240003585815, 11.3990001678467, 
11.4940004348755, 11.6059999465942, 11.8030004501343, 10.4250001907349, 
10.6859998703003, 10.8909997940063, 11.0679998397827, 11.1680002212524, 
11.3929996490479, 11.6040000915527, 11.6759996414185, 11.7209997177124, 
11.6890001296997, 11.6169996261597, 11.5369997024536, 11.4729995727539, 
11.4809999465942, 11.5299997329712, 11.5790004730225, 11.706000328064, 
11.96399974823, 10.5249996185303, 10.7620000839233, 11.0609998703003, 
11.2270002365112, 11.3950004577637, 11.5880002975464, 11.6490001678467, 
11.7709999084473, 11.8439998626709, 11.8190002441406, 11.8179998397827, 
11.8240003585815, 11.7969999313354, 11.7729997634888, 11.7589998245239, 
11.8000001907349, 11.9910001754761, 12.3430004119873, 11.3909997940063, 
11.5719995498657, 11.6979999542236, 11.8590002059937, 11.9580001831055, 
11.9759998321533, 11.960000038147, 11.9610004425049, 12.0260000228882, 
11.5100002288818, 11.6529998779297, 11.9490003585815, 12.1890001296997, 
12.2370004653931, 12.5150003433228, 12.6669998168945, 12.8570003509521, 
13.125, 13.3369998931885, 13.496000289917, 13.5900001525879, 
13.7390003204346, 13.8459997177124, 14.0220003128052, 14.1359996795654, 
11.6099996566772, 11.7600002288818, 12.0319995880127, 12.3039999008179, 
12.5880002975464, 12.8380002975464, 13.0570001602173, 13.1979999542236, 
13.4340000152588, 13.6269998550415, 13.793999671936, 13.8680000305176, 
13.9689998626709, 14.0900001525879, 14.2679996490479, 14.3549995422363, 
14.4860000610352, 14.793999671936, 15.043999671936, 15.2620000839233, 
11.6070003509521, 11.9060001373291, 12.2030000686646, 12.4940004348755, 
12.8889999389648, 13.2290000915527, 13.375, 13.4619998931885, 
13.664999961853, 13.8579998016357, 14.0129995346069, 14.0860004425049, 
14.1379995346069, 14.3249998092651, 14.3459997177124, 14.4490003585815, 
14.5900001525879, 14.8699998855591, 15.1409997940063, 11.878999710083, 
12.1780004501343, 12.4379997253418, 12.8030004501343, 13.1579999923706, 
13.4519996643066, 13.5649995803833, 13.6529998779297, 13.8809995651245, 
14.0550003051758, 14.1120004653931, 14.2650003433228, 14.3520002365112, 
14.3420000076294, 14.3690004348755, 14.4619998931885, 14.6700000762939, 
14.9670000076294, 15.2320003509521, 12.1070003509521, 12.3439998626709, 
12.6859998703003, 12.9940004348755, 13.2740001678467, 13.5139999389648, 
13.6049995422363, 13.7229995727539, 13.8760004043579, 14.0380001068115, 
14.1789999008179, 14.3889999389648, 14.3929996490479, 14.4090003967285, 
14.3549995422363, 14.4449996948242, 14.6510000228882, 14.9829998016357, 
15.293999671936, 12.3800001144409, 12.6680002212524, 12.923999786377, 
13.2270002365112, 13.3610000610352, 13.5109996795654, 13.7910003662109, 
13.9729995727539, 14.1040000915527, 14.3470001220703, 14.4219999313354, 
14.4060001373291, 14.4219999313354, 14.4040002822876, 14.4350004196167, 
14.4619998931885, 14.5900001525879, 14.996000289917, 15.3769998550415, 
12.6960000991821, 12.8450002670288, 13.1099996566772, 13.4630002975464, 
13.5509996414185, 13.6300001144409, 14.0089998245239, 14.2530002593994, 
14.4440002441406, 14.6350002288818, 14.6540002822876, 14.5, 14.4350004196167, 
14.4219999313354, 14.4890003204346, 14.5830001831055, 14.6809997558594, 
15.1990003585815, 15.5290002822876, 12.8360004425049, 13.0920000076294, 
13.371000289917, 13.6719999313354, 14.0069999694824, 14.3039999008179, 
14.5790004730225, 14.6990003585815, 14.7709999084473, 14.7510004043579, 
14.6890001296997, 14.6269998550415, 14.5979995727539, 14.6450004577637, 
14.7580003738403, 14.9399995803833, 15.326000213623, 15.6669998168945, 
12.9650001525879, 13.2700004577637, 13.5939998626709, 13.9060001373291, 
14.2469997406006, 14.5120000839233, 14.6070003509521, 14.7679996490479, 
14.8830003738403, 14.8680000305176, 14.8809995651245, 14.9049997329712, 
14.9270000457764, 14.9340000152588, 14.9729995727539, 15.1009998321533, 
15.4180002212524, 15.8330001831055, 14.1990003585815, 14.4530000686646, 
14.6389999389648, 14.8489999771118, 14.9809999465942, 15.0150003433228, 
15.0030002593994, 15.0109996795654, 15.1180000305176), year = c(1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 
1980L, 1980L, 1980L, 1980L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 
1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L, 1981L
), month = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L)), sfc_columns = c("x", "y"), class = "data.frame", row.names = c(NA, 
-352L))

Code:

library(tidyverse)

df %>%
  ggplot(aes(x = year, y = TMin))  
  geom_point(aes(color = "deepskyblue4"), size = 2, shape = 1, alpha = 0.1)  
  geom_smooth(method = lm, linetype = 2, aes(color = "red4"), se = F)  
  scale_colour_manual(name = "Legend", values = c("deepskyblue4", "red"), label = c("Temperature", "LM"))  
  theme(text = element_text(size = 16))  
  xlab("Year")  
  ylab("Minimum Temperature (C)")  
  ggtitle("February Regression Plot")

CodePudding user response:

I would probably use separate aesthetic scales here: color for the points and linetype for the regression line. That way each geom layer gets its own representative entry in the legend.

library(tidyverse)

df %>%
  ggplot(aes(x = year, y = TMin))  
  geom_point(aes(color = "Temperature"), size = 2, shape = 1, alpha = 0.1)  
  geom_smooth(method = lm, aes(linetype = "LM"), se = FALSE, color = "red")  
  scale_linetype_manual(values = 2, name = NULL)  
  scale_colour_manual(values = "deepskyblue4", name = NULL)  
  scale_x_continuous(breaks = 1980:1981, minor_breaks = seq(1980, 1981, 1/12))  
  theme(text = element_text(size = 16))  
  xlab("Year")  
  ylab("Minimum Temperature (C)")  
  ggtitle("February Regression Plot")  
  guides(color = guide_legend(override.aes = list(alpha = 0.5), order = 1))

enter image description here

  • Related