3

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

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 功能,但后来卡住了。

任何帮助深表感谢。谢谢

4

2 回答 2

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

于 2013-09-01T16:44:30.537 回答
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")

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

于 2019-12-20T19:54:50.467 回答