首页 > 解决方案 > 您如何遍历所有列以在 ggplot 中绘制多个系列?

问题描述

我已经在列中格式化了一些数据,我希望制作一个折线图,其中单个 x 轴针对许多列绘制。每列 (Y1, Y2, ...Y500) 输出不同的行。

如何遍历所有列以为每个 X1:Yn 组合创建一个系列,同时保持相同的 x 轴?

目前,我有以下代码,但确实想手动添加所有 500 列。

plot <- ggplot(data=myData) + geom_point(aes(x=X1, y=Y1, color="blue")) + geom_point(aes(x=X1, y=Y2, color="red"))

标签: rggplot2

解决方案


您可以将 Y 堆叠成一列(并相应地堆叠/重复 x),并创建第二列 - 一个因子 - 指示变量(查看 tidyr::pivot_longer)。拥有该数据框后,您可以执行以下操作:

ggplot = (data=df, aes(x=x, color=factor)) + geom_line()
# Assuming the data frame is called "df", the x column is "x", and the indicator of variable is "factor"

另一种方法(但第一种可能更好)是做一个循环:

g = ggplot(data=df, aes(x=x))

for(i in 1:ncol(df)){
    g + geom_line(aes(y=df[,i]))}

plot(g)

推荐阅读