首页 > 解决方案 > 单个ggplot2中的多条数据线

问题描述

我想在一个 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,一条用于 var2,一条用于 par。

当前的

但是,我想要四行:给定 par=0的 var1 一行,给定 par=1的 var1 另一行,对于 var2 也是如此。

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

标签: rggplot2plot

解决方案


如果您以不同的方式融合数据,您可以使用它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")

输出:

在此处输入图像描述


推荐阅读