R 单个ggplot2中的多条数据线

R 单个ggplot2中的多条数据线,r,ggplot2,plot,R,Ggplot2,Plot,我想在一个ggplot中绘制多条线,其中每条线表示给定两个或多个参数的x和y之间的关系 我知道如何对一个参数执行此操作: 以以下数据为例: library(ggplot2) library(reshape2) rs = data.frame(seq(200, 1000, by=200), runif(5), runif(5), rbinom(n = 5, size = 1, prob = 0.

我想在一个ggplot中绘制多条线,其中每条线表示给定两个或多个参数的x和y之间的关系

我知道如何对一个参数执行此操作:

以以下数据为例:

library(ggplot2)
library(reshape2)

rs = data.frame(seq(200, 1000, by=200), 
                runif(5), 
                runif(5), 
                rbinom(n = 5, size = 1, prob = 0.5)) 
names(rs) = c("x_", "var1", "var2", "par")

melted = melt(rs, id.vars="x_")

ggplot(data = melted, 
       aes(x = x_, y = value, group = variable, col = variable)) + 
  geom_point() + 
  geom_line(linetype = "dashed")

这三条线为VAR1,1为VAR2,1为PAR。

但是,我想要四行:一行表示给定par=0的var1,另一行表示给定par=1的var1,然后同样表示var2


这将如何放大,例如,如果我希望条件是多个参数的组合(例如PAR2+PAR)?

< P>你需要调整你的熔体函数,并添加一个既有Par又有VAR细节的组列。我想下面是你想要的

library(reshape)
library(ggplot2)
rs = data.frame(seq(200, 1000, by=200), runif(5), runif(5), rbinom(n = 5, size = 1, prob = 0.5))
names(rs)=c("x_", "var1", "var2", "par")

melted = melt(rs, id.vars=c("x_", "par"))
melted$group <- paste(melted$par, melted$variable)

ggplot(data=melted, aes(x=x_, y=value, group =group, col=group))+ geom_point() + geom_line(linetype = "dashed")
库(重塑)
图书馆(GG2)
rs=数据帧(seq(200,1000,by=200),runif(5),runif(5),rbinom(n=5,size=1,prob=0.5))
名称(rs)=c(“x_uux”,“var1”,“var2”,“par”)
熔化=熔化(rs,id.vars=c(“x”,“par”))

熔化的$GUTP>你需要调整你的熔化函数并添加一个既有PAR又有VAR细节的组列。我想下面是你想要的

library(reshape)
library(ggplot2)
rs = data.frame(seq(200, 1000, by=200), runif(5), runif(5), rbinom(n = 5, size = 1, prob = 0.5))
names(rs)=c("x_", "var1", "var2", "par")

melted = melt(rs, id.vars=c("x_", "par"))
melted$group <- paste(melted$par, melted$variable)

ggplot(data=melted, aes(x=x_, y=value, group =group, col=group))+ geom_point() + geom_line(linetype = "dashed")
库(重塑)
图书馆(GG2)
rs=数据帧(seq(200,1000,by=200),runif(5),runif(5),rbinom(n=5,size=1,prob=0.5))
名称(rs)=c(“x_uux”,“var1”,“var2”,“par”)
熔化=熔化(rs,id.vars=c(“x”,“par”))

熔化的$group如果您以不同的方式熔化数据,您可以使用
par
更改线条的形状和线型,这样就可以清楚地知道哪一行是哪一行:

rs_melt = melt(rs, id.vars = c("x_", "par"))

ggplot(rs_melt, aes(x = x_, y = value, colour = variable, 
                    shape = factor(par), linetype = factor(par))) +
    geom_line(size = 1.1) +
    geom_point(size = 3) +
    labs(shape = "par", linetype = "par")
输出:


如果您以不同的方式融化数据,您可以使用
par
更改线条的形状和线型,这样就可以清楚地看到哪一条线条是哪一条:

rs_melt = melt(rs, id.vars = c("x_", "par"))

ggplot(rs_melt, aes(x = x_, y = value, colour = variable, 
                    shape = factor(par), linetype = factor(par))) +
    geom_line(size = 1.1) +
    geom_point(size = 3) +
    labs(shape = "par", linetype = "par")
输出:


回答得好。我可以建议在绘图中添加类似于
+主题(legend.key.width=unit(3,“线”)
的内容吗?这将使
par
图例中的两种线型更加明显。在默认大小下,圆/三角形形状覆盖虚线中的断点。回答不错。我可以建议在绘图中添加类似于
+主题(legend.key.width=unit(3,“线”)
的内容吗?这将使
par
图例中的两种线型更加明显。在默认大小下,圆/三角形形状会覆盖虚线中的断点。是否可以重命名组图例,使其不只是说“0 var1”、“1 var1”等,而是说“par:0,var1”?如何将这些信息直接放到行上?要重命名图例中的组,只需重命名数据框中的变量,类似于
melled$group,是否可以重命名组图例,这样它就不会只说“0 var1”、“1 var1”等,而是说“par:0,var1”?如何将这些信息直接放到行上?要重命名图例中的组,只需重命名数据框中的变量,如
group