0
我无法弄清楚如何为我的geom_point和我的geom_line数据创建两个独立的图例。目前,我有一个描述不同线型意味着什么的图例,但是当我尝试添加图例来描述不同点形状的意思(蓝色三角形和圆形)时,蓝色圆圈会简单地重叠线型图例。非常感谢任何能够帮助我为线型和点形做出两个独立传奇的人。下面是我的代码,我的数据,我的电流图的照片:如何分离ggplot2中的图例以便它们不重叠?
这里是我的数据,所谓的“数据”:
site_name Watershed Fish_IBI_Tool2_percent Fish_IBI_Tool7_percent Exceptional_2_percent Poor_2_percent
1 Piersons Six Mile Creek & Schutz Lake 12.888889 NA 42.22222 0
2 Wassermann Six Mile Creek & Schutz Lake -17.111111 NA 42.22222 0
3 Church Six Mile Creek & Schutz Lake NA NA NA NA
4 Steiger Six Mile Creek & Schutz Lake -35.777778 NA 42.22222 0
5 Zumbra Six Mile Creek & Schutz Lake 2.666667 NA 42.22222 0
6 Stone Six Mile Creek & Schutz Lake NA NA NA NA
7 East Auburn Six Mile Creek & Schutz Lake -35.333333 NA 42.22222 0
8 West Auburn Six Mile Creek & Schutz Lake -35.333333 NA 42.22222 0
9 Turbid Six Mile Creek & Schutz Lake NA NA NA NA
10 Schutz Six Mile Creek & Schutz Lake -49.333333 NA 42.22222 0
11 Brownie Minnehaha Creek NA NA NA NA
12 Calhoun Minnehaha Creek -6.888889 NA 42.22222 0
13 Cedar Minnehaha Creek 6.666667 NA 42.22222 0
14 Harriet Minnehaha Creek -6.222222 NA 42.22222 0
15 Hiawatha Minnehaha Creek NA NA NA NA
16 Lake of the Isles Minnehaha Creek NA 7.50000 NA NA
17 Nokomis Minnehaha Creek -4.888889 NA 42.22222 0
18 Minnehaha Creek NA NA NA NA
19 Taft Minnehaha Creek NA NA NA NA
20 Mud Six Mile Creek & Schutz Lake NA 13.61111 NA NA
21 Parley Six Mile Creek & Schutz Lake NA 45.83333 NA NA
Degraded_2_percent Exceptional_4_percent Poor_4_percent Degraded_4_percent Poor_7_percent Degraded_7_percent
1 -51.11111 NA NA NA NA NA
2 -51.11111 NA NA NA NA NA
3 NA 55.26316 0 -76.31579 NA NA
4 -51.11111 NA NA NA NA NA
5 -51.11111 NA NA NA NA NA
6 NA 55.26316 0 -76.31579 NA NA
7 -51.11111 NA NA NA NA NA
8 -51.11111 NA NA NA NA NA
9 NA 55.26316 0 -76.31579 NA NA
10 -51.11111 NA NA NA NA NA
11 NA 55.26316 0 -76.31579 NA NA
12 -51.11111 NA NA NA NA NA
13 -51.11111 NA NA NA NA NA
14 -51.11111 NA NA NA NA NA
15 NA 55.26316 0 -76.31579 NA NA
16 NA NA NA NA 0 -52.77778
17 -51.11111 NA NA NA NA NA
18 NA NA NA NA 0 -52.77778
19 NA 55.26316 0 -76.31579 NA NA
20 NA NA NA NA 0 -52.77778
21 NA NA NA NA 0 -52.77778
这里是我的数据的dput:
structure(list(site_name = structure(c(10L, 13L, 18L, 14L, 12L,
19L, 16L, 17L, 20L, 15L, 5L, 4L, 1L, 3L, 6L, 8L, 2L, 9L, 7L,
22L, 21L), .Label = c("Cedar", "Nokomis", "Harriet", "Calhoun",
"Brownie", "Hiawatha", "Taft", "Lake of the Isles", " ", "Piersons",
"Kelser's Pond", "Zumbra", "Wassermann", "Steiger", "Schutz",
"East Auburn", "West Auburn", "Church", "Stone", "Turbid", "Parley",
"Mud"), class = "factor"), Watershed = c("Six Mile Creek & Schutz Lake",
"Six Mile Creek & Schutz Lake", "Six Mile Creek & Schutz Lake",
"Six Mile Creek & Schutz Lake", "Six Mile Creek & Schutz Lake",
"Six Mile Creek & Schutz Lake", "Six Mile Creek & Schutz Lake",
"Six Mile Creek & Schutz Lake", "Six Mile Creek & Schutz Lake",
"Six Mile Creek & Schutz Lake", "Minnehaha Creek", "Minnehaha Creek",
"Minnehaha Creek", "Minnehaha Creek", "Minnehaha Creek", "Minnehaha Creek",
"Minnehaha Creek", "Minnehaha Creek", "Minnehaha Creek", "Six Mile Creek & Schutz Lake",
"Six Mile Creek & Schutz Lake"), Fish_IBI_Tool2_percent = c(12.88888889,
-17.11111111, NA, -35.77777778, 2.666666667, NA, -35.33333333,
-35.33333333, NA, -49.33333333, NA, -6.888888889, 6.666666667,
-6.222222222, NA, NA, -4.888888889, NA, NA, NA, NA), Fish_IBI_Tool7_percent = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 7.5,
NA, NA, NA, 13.61111111, 45.83333333), Exceptional_2_percent = c(42.22222222,
42.22222222, NA, 42.22222222, 42.22222222, NA, 42.22222222, 42.22222222,
NA, 42.22222222, NA, 42.22222222, 42.22222222, 42.22222222, NA,
NA, 42.22222222, NA, NA, NA, NA), Poor_2_percent = c(0L, 0L,
NA, 0L, 0L, NA, 0L, 0L, NA, 0L, NA, 0L, 0L, 0L, NA, NA, 0L, NA,
NA, NA, NA), Degraded_2_percent = c(-51.11111111, -51.11111111,
NA, -51.11111111, -51.11111111, NA, -51.11111111, -51.11111111,
NA, -51.11111111, NA, -51.11111111, -51.11111111, -51.11111111,
NA, NA, -51.11111111, NA, NA, NA, NA), Exceptional_4_percent = c(NA,
NA, 55.26315789, NA, NA, 55.26315789, NA, NA, 55.26315789, NA,
55.26315789, NA, NA, NA, 55.26315789, NA, NA, NA, 55.26315789,
NA, NA), Poor_4_percent = c(NA, NA, 0L, NA, NA, 0L, NA, NA, 0L,
NA, 0L, NA, NA, NA, 0L, NA, NA, NA, 0L, NA, NA), Degraded_4_percent = c(NA,
NA, -76.31578947, NA, NA, -76.31578947, NA, NA, -76.31578947,
NA, -76.31578947, NA, NA, NA, -76.31578947, NA, NA, NA, -76.31578947,
NA, NA), Poor_7_percent = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, 0L, NA, 0L, NA, 0L, 0L), Degraded_7_percent = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, -52.77777778,
NA, -52.77777778, NA, -52.77777778, -52.77777778)), .Names = c("site_name",
"Watershed", "Fish_IBI_Tool2_percent", "Fish_IBI_Tool7_percent",
"Exceptional_2_percent", "Poor_2_percent", "Degraded_2_percent",
"Exceptional_4_percent", "Poor_4_percent", "Degraded_4_percent",
"Poor_7_percent", "Degraded_7_percent"), class = "data.frame", row.names = c(NA,
-21L))
这里是我的代码:
#Import, fix up, and subset Data data.frame
Data = read.csv("Lakes_data_for_R2.csv",
stringsAsFactors=FALSE)
colnames(Data)[1] <- "site_name"
#Order site_name
Data$site_name <- factor(Data$site_name, levels = c("Cedar",
"Nokomis",
"Harriet",
"Calhoun",
"Brownie",
"Hiawatha",
"Taft",
"Lake of the Isles",
" ",
"Piersons",
"Kelser's Pond",
"Zumbra",
"Wassermann",
"Steiger",
"Schutz",
"East Auburn",
"West Auburn",
"Church",
"Stone",
"Turbid",
"Parley",
"Mud"))
#Load ggplot
library(ggplot2)
#Make plot
ggplot() +
geom_point(data = Data, aes(x = site_name, y = Fish_IBI_Tool2, shape = "tool2"), size = 5, color = "blue", show_guide = TRUE) +
geom_point(data = Data, aes(x = site_name, y = Fish_IBI_Tool7, shape = "tool7"), size = 5, color = "blue", show_guide = TRUE) +
geom_line(data = Data, aes(x = site_name, y = Exceptional_2_percent, group = 1, linetype = "Exceptional", color = "Exceptional"), size = 1) +
geom_line(data = Data, aes(x = site_name, y = Poor_2_percent, group = 1, linetype = "Poor", color = "Poor"), size = 1) +
geom_line(data = Data, aes(x = site_name, y = Degraded_2_percent, group = 1, linetype = "Degraded", color = "Degraded"), size = 1) +
geom_line(data = Data, aes(x = site_name, y = Exceptional_4_percent, group = 1, linetype = "Exceptional", color = "Exceptional"), size = 1) +
geom_line(data = Data, aes(x = site_name, y = Poor_4_percent, group = 1, linetype = "Poor", color = "Poor"), size = 1) +
geom_line(data = Data, aes(x = site_name, y = Degraded_4_percent, group = 1, linetype = "Degraded", color = "Degraded"), size = 1) +
geom_line(data = Data, aes(x = site_name, y = Poor_7_percent, group = 1, linetype = "Poor", color = "Poor"), size = 1) +
geom_line(data = Data, aes(x = site_name, y = Degraded_7_percent, group = 1, linetype = "Degraded", color = "Degraded"), size = 1) +
scale_linetype_manual(values = c("dashed", "twodash", "solid"), breaks = c("Degraded", "Poor", "Exceptional"), name = "Legend") +
scale_color_manual(values = c("red", "springgreen4", "red"), breaks = c("Degraded", "Poor", "Exceptional"), name = "Legend") +
scale_shape_manual(values = c(17, 16), breaks = c("Tool 2", "Tool 7")) +
ylab ("Fish IBI (% difference from Poor threshold)") + xlab("") +
facet_grid(~Watershed, scale = "free", space = "free") +
theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1, color = "black"),
axis.text.y = element_text(color = "black"),
panel.grid.major.x = element_blank(),
panel.grid.major.y = element_blank(),
panel.grid.minor = element_blank(),
axis.line.x = element_line(color = "black"),
axis.line.y = element_line(color = "black"),
panel.background = element_rect(fill = "white"),
legend.key=element_blank(),
legend.title = element_blank(),
text = element_text(size=18),
panel.spacing = unit(2, "lines"))
这里就是我的图表目前的样子:
可能你发布数据的“输入”? 'show_guide'也被弃用。你使用的是什么版本的ggplot? – Vandenman
@Vandenman感谢您的快速回复!刚刚发布dput(数据)输出。让我知道这是否有帮助。 – snalven
@Vandenman oops--我没有意识到show.legend和show_guide之间有区别。虽然他们似乎在这里做同样的事情......我将从现在开始使用show.legend。 – snalven