繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM