R ggplot如何在同一图表中以geom_line的形式绘制(未知数)数据系列

问题描述 投票:0回答:1

我在这里的第一个问题,所以,如果我在任何地方都不合时宜,请走开。

我正在尝试对R进行编码以生成一个包含多个数据系列线的单个图表。数据序列的数量可能会有所不同,但会在数据帧中提供。我试图将另一个线程的内容重新排列为print geom_line,但没有成功。

逻辑是:

#desire to replace loop of 1:5 with ncol(df)
 print(ggplot(df,aes(x=time))
for (i in 1:5) { 
   print (+ geom_line(aes(y=df[,i])) 
}
#functioning geom point loops ggplot production:
for (i in 1:5) { 
   print(ggplot(df,aes(x=time,y=df[,i]))+geom_point()) 
} 
#functioning multi-line ggplot where n is explicit:
ggplot(data=df, aes(x=time), group=1) +
  geom_line(aes(y=df$`3`))+
  geom_line(aes(y=df$`4`))

该功能示例代码生成n个点图,在这种情况下为5。我只希望一张图表包含n条线系列。

这可能类似于How to plot n dimmensional matrix?,目前尚无相关答案

非常感谢您的任何贡献,谢谢

r ggplot2 multiline
1个回答
0
投票

您可以使用gather“世界”中的tidyverse执行此操作。由于您没有提供样本数据,因此我使用了mtcars。我创建了两个data.frames,其中一个3列,一个9列。在其中的每一个中,我都针对变量mpg绘制了所有变量。

library(tidyverse)

df3Columns <- mtcars[, 1:4]
df9Columns <- mtcars[, 1:10]


df3Columns %>% 
  gather(var, value, -mpg) %>% 
  ggplot(aes(mpg, value, group = var, color = var)) + 
  geom_line()

enter image description here

df9Columns %>% 
  gather(var, value, -mpg) %>% 
  ggplot(aes(mpg, value, group = var, color = var)) + 
  geom_line()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.