我有以下数据,由两个不同长度的数据帧组成。
df1 <- data.frame(cbind(rnorm(20,0.4,0.2), seq(0,200,by=10)))
df2 <- data.frame(cbind(rnorm(30,0.6,0.25), seq(0,270,by=9)))
我想将它们绘制在同一图上,并通过不同类型的虚线将它们彼此区分开。我似乎无法使它正常工作,并且已经在广泛地寻找解决方案。问题是我的两组数据长度不同,因此我不能简单地融化数据并粘贴到ggplot中。
ggplot() +
geom_path(data = df1, aes(x = X1, y = X2)) +
geom_path(data = df2, aes(x = X1, y = X2)) +
theme_bw() + geom_point() + geom_line() +
scale_y_reverse()+
scale_x_continuous(position="top") +
scale_linetype_manual(values=c("twodash", "dotted")) +
theme(axis.line=element_line(),
axis.line.y = element_line(),
panel.background= element_blank(),
panel.border = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank(),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank())
任何帮助将不胜感激!
答案 0 :(得分:1)
数据长度不同实际上并不重要,您只需要创建一个新列即可识别哪个数据集,然后可以使用rbind()
将它们堆叠在一起:< / p>
df1$Source = "df1"
df2$Source = "df2"
df_combined = rbind(df1, df2)
ggplot(df_combined, aes(x = X1, y = X2, linetype = Source)) +
geom_path() +
theme_bw() +
scale_y_reverse()+
scale_x_continuous(position="top") +
scale_linetype_manual(values=c("twodash", "dotted")) +
theme(axis.line=element_line(),
axis.line.y = element_line(),
panel.background= element_blank(),
panel.border = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank(),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank())