如何在x轴上绘制两个矢量,在ggplot2中如何在y轴上绘制另一个矢量

时间:2013-09-01 16:25:51

标签: r

我试图绘制两个具有不同值的矢量,但在同一图表上的长度相等,如下所示:

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轴?我也试过使用融合长功能,但后来卡住了。

非常感谢任何帮助。谢谢

2 个答案:

答案 0 :(得分:1)

我认为最好的方法是通过融合数据的方法(正如你所提到的)。特别是如果你要添加更多的矢量。这是代码

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手动更改颜色。

答案 1 :(得分:0)

一个更简单的解决方案是仅使用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")

我添加了颜色,您可能希望使用它们来区分变量。