r - 以固定的列间隔在数据框中绘制多个数据,并在一个图中绘制相应的图例

标签 r function ggplot2

我有一个使用以下代码生成的 30 列的数据框 x3,我想在单个图中绘制第一列为 x 轴,y 轴应为第 5 列, 10、15、20、25 和 30。

x <- c(1:10)
y <- x^3
z <- y-20
s <- z/3
t <- s*6
q <- s*y
x1 <- cbind(x,y,z,s,t,q)
x2 <- cbind(x1,x1*5)
x3 <- cbind(x1,x1*5,x2*2,x1+2)
x3 <- data.frame(x3)

要绘制多个 y 数据(第 5、10、15、20、25 和 30 列)与相同的 x 轴数据,我使用以下这段代码,

plt <- ggplot() + 
  lapply(seq(5,ncol(x3),5),         
         function(x){              
           geom_line(aes(x=x3[1], y=x3[x]),                           
                     color=variable,                                
                     size=1.5) + scale_y_continuous()                                          
         }) +   xlab('x') +  ylab('y')

但是我在 do.call("layer".. 有人可以指出我需要在上面的代码中修改哪些地方,以便以正确的方式显示数据以及图例。

谢谢

最佳答案

使用 melt 将您的数据 reshape 为长格式:

x4 <- melt(x3, id=c("x"), measure=c("t","s.1","z.2","y.3","x.4","q.4"), variable = "cols")

然后创建你的情节:

ggplot(x4) +
  geom_line(aes(x=x, y=value, color=cols), size=1) + 
  scale_y_continuous() 

给出:

enter image description here

关于r - 以固定的列间隔在数据框中绘制多个数据,并在一个图中绘制相应的图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21308879/

相关文章:

r - 将相关矩阵绘制成图表

r - 将数据添加到现有的 ggplot2 图中

css - 从 `bookdown::gitbook` 中删除所有表格 CSS

r - 打开shapefile时出错

r - 根据上次发生的条件进行更新

function - 接受参数和管道输入的自定义 PowerShell 函数

javascript - NodeJS 在函数内更改变量

c - 如何从另一个c文件中的void函数返回元素数组

r - R中的长矢量图/覆盖图

r - 如何在 R 中创建树形图