我geom_point
在同一个情节中绘制了三次,但第二次和第三次geom_point
没有出现在图例中,我不明白为什么。我看了很多帖子,但找不到真正有效的解决方案。我的 2 个原始数据框不同,我更愿意保持这种状态而不加入它们。
十字(或颜色)出现在所有图例项目上,或者第二个geom_point()
未在图例中提及。这是我当前的代码:
ggplot () +
geom_point(data = data_1[data_1$River != "Roya",], aes(x = W_AC, y = BRI_mean_XS, shape = River, col = Type), size = 3) +
geom_point(data = data_2, aes(x = W_m, y = BRI_norm, color = "Second geom_point "), shape = 4, size = 2.5) +
scale_shape_manual(values = c(15, 18, 17, 16)) +
scale_colour_manual(values = c("blue4", "chocolate1", "darkcyan")) +
geom_text(data = data_1[data_1$River != "Roya",], aes(x = W_AC, y = BRI_mean_XS, label = Year, vjust = -0.5, hjust = -0.5), show.legend = FALSE, size = 4) +
scale_x_continuous(name = "aa") +
scale_y_continuous(name = "bb") +
geom_point(data = data_1[data_1$River == "Roya",], aes(x = W_AC, y = BRI_mean_XS), shape = 16, col = "cornflowerblue", size = 3) +
geom_text(data = data_1[data_1$River == "Roya",], aes(x = W_AC, y = BRI_mean_XS, label = Year, vjust = -0.5, hjust = -0.5), show.legend = F, size = 4) +
theme_bw()
我还尝试在图中指定颜色和形状,scale_*_manual
但图中未使用该形状。例如:scale_shape_manual(values = c(15, 18, 17, 16, 4))
,4
为第二个geom_point。
正如我在其他帖子中所读到的,当在 中指定值时scale_*_manual
,它应该出现在图例之后,但在这里似乎混淆了。Type
不能在section 或section中显示蓝十字River
吗?第三个geom_point()
(Roya)也一样,可以在该River
部分画一个蓝色圆圈吗?
这是我的 2 个数据框的输入:
数据_1:
structure(list(River = c("Durance", "Durance", "Durance", "Durance", "Roya", "Var", "Drac", "Drac", "Drac", "Drac", "Var", "Var", "Mareta", "Mareta", "Mareta", "Mareta", "Var"), Type = c("Under restoration", "Target", "Under restoration", "Target", "Witness", "Under restoration", "Under restoration", "Target", "Under restoration", "Target", "Target", "Under restoration", "Under restoration", "Under restoration", "Target", "Target", "Under restoration"), Year = c(2017, 2017, 2012, 2012, 2018, 2005, 2011, 2011, 2018, 2018, 2012, 2018, 2005, 2013, 2005, 2013, 2012), BRI_mean_XS = c(0.0028, 0.0017, 0.0033,
0.0018, 0.009, 0.0097, 0.0182, 0.0026, 0.0032, 0.0035, 0.0053,
0.0016, 0.005, 0.0041, 0.0058, 0.0082, 0.0037), W_AC = c(296.522411128284,
411.01376146789, 263.944186046512, 363.288990825688, 88.6420798065296,
155.868223887175, 41.4430051813472, 138.772532188841, 105.525906735751,
108.848484848485, 144.78431372549, 314.685764654033, 29.8791208791209,
52.8, 33.6949152542373, 34.4661016949153, 149.838539375275)), row.names = c(NA,
-17L), class = c("tbl_df", "tbl", "data.frame"))
数据_2:
structure(list(SITE = c("AIGUES-C", "BUECH-AV", "ARRONDINE", "ARVAN", "ASSE-BLIEUX", "ASSE-BLIEUX", "ASSE-AV", "ASSE-AM", "ASSE-AM", "BES-BLEONE", "BES-BLEONE", "BES-DROME", "BES-DROME", "BLEONE-AM", "BLEONE-AV", "BUECH-AV", "BUECH-AV", "DRANSE-MORZINE", "DRANSE-MORZINE", "DROME-RECOUBEAU", "DROME-PONTQUART", "DROME-PONTQUART", "EYGUES-R", "FIER", "GIFFRE", "JABRON", "PETIT-BUECH", "PETIT-BUECH", "ROUBION", "SASSE", "SASSE", "SASSE", "SEVERAISSE", "SEVERAISSE", "UBAYE", "VANCON", "VAR", "VENEON", "VERDON", "DRAC LIDAR1", "DROME LIDAR1", "DROME LIDAR2", "DROME LIDAR3"), W_m = c(180,
333.593594745271, 56, 78, 102, 58.8, 171.9, 202, 170, 132, 148, 76, 98, 99.9, 171.3, 214, 125, 63, 64, 137, 181, 39, 66, 91, 220, 120, 90, 103, 114, 182, 123, 139, 152, 38, 144, 58, 183, 193, 193,
103.3287640678, 170.959110791, 168.800988262, 133.13237116 ), BRI_norm = c(0.00238417932933424, 0.0019586918252209, 0.00592873427970417,
0.00496998572378169, 0.00257768461027533, 0.00594823420965329,
0.00196839869925125, 0.00110647254938539, 0.00129282468469599,
0.00255415705319677, 0.00189636185539575, 0.00272918083912772,
0.00362898036424863, 0.00240398604859984, 0.00158558538418367,
0.00179786294819712, 0.0024557284827885, 0.00910376733031885,
0.00534776094775883, 0.00392598083437978, 0.00240750522409946,
0.00514878385829154, 0.00254279813562245, 0.00563806058644668,
0.00119537585167636, 0.00458318564753459, 0.00595336684669024,
0.00487895959784154, 0.00292014352039067, 0.00238157929363119,
0.0025305005154242, 0.00243334672392244, 0.00211201916980846,
0.007410716639085, 0.0035528851408779, 0.00991898865707844, 0.00350148630982832,
0.00181290043814611, 0.00277563808425691, 0.00766507891511477,
0.000968375521552066, 0.000999909065815609, 0.00107669687622853 )), row.names = c(NA, -43L), class = c("tbl_df", "tbl", "data.frame" ))