[英]How do you plot two vectors on x-axis and another on y-axis in ggplot2
我试图在同一个图形上绘制两个具有不同值但长度相等的向量,如下所示:
a<-23.33:52.33
b<-33.33:62.33
days<-1:30
df<-data.frame(x,y,days)
a b days
1 23.33 33.33 1
2 24.33 34.33 2
3 25.33 35.33 3
4 26.33 36.33 4
5 27.33 37.33 5
etc..
我正在尝试使用 ggplot2 在 x 轴上绘制 x 和 y 以及在 y 轴上绘制天数。 但是,我不知道该怎么做。 我可以单独绘制它们并组合图形,但我只需要一个图形,x 轴上有 a 和 b 向量(不同颜色),y 轴上有天数。
到目前为止我所拥有的:
X<-ggplot(df, aes(x=a,y=days)) + geom_line(color="red")
Y<-ggplot(df, aes(x=b,y=days)) + geom_line(color="blue")
有没有办法为 a 和 b 向量定义 x 轴? 我也试过使用melt long函数,但后来卡住了。
任何帮助深表感谢。 谢谢
我认为最好的方法是通过融合数据的方法(正如你所提到的)。 特别是如果您要添加更多向量。 这是代码
library(reshape2)
library(ggplot2)
a<-23:52
b<-33:62
days<-1:30
df<-data.frame(x=a,y=b,days)
df_molten=melt(df,id.vars="days")
ggplot(df_molten) + geom_line(aes(x=value,y=days,color=variable))
您还可以通过scale_color_manual
手动更改颜色。
一个更简单的解决方案是只使用 ggplot。 以下代码适用于您的情况
a<-23.33:52.33
b<-33.33:62.33
days<-1:30
df<-data.frame(a,b,days)
ggplot(data = df)+
geom_line(aes(x = df$days,y = df$a), color = "blue")+
geom_line(aes(x = df$days,y = df$b), color = "red")
我添加了颜色,您可能希望使用它们来区分变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.