如何在R中绘制多线图

How ro draw a multiline plot in R

我有一个包含 6 个特征的数据框:

                X1   X2   X3   X4   X5   X6
Modern Dog     9.7 21.0 19.4  7.7 32.0 36.5
Golden Jackal  8.1 16.7 18.3  7.0 30.3 32.9
Chinese Wolf  13.5 27.3 26.8 10.6 41.9 48.1
Indian Wolf   11.5 24.3 24.5  9.3 40.0 44.6
Cuon          10.7 23.5 21.4  8.5 28.8 37.6
Dingo          9.6 22.6 21.1  8.3 34.4 43.1 

我想画这样的线图:

我正在尝试这个:

plot(df$X1, type = "o",col = "red", xlab = "Month", ylab = "Rain fall")

lines(c(df$X2, df$X3, df$X4, df$X5, df$X6), type = "o", col = "blue")

但它只绘制了一个变量。如果这个问题很烦人,我很抱歉,我是 R 的新手,我只是不知道如何完成。我真的很感激任何帮助。

提前致谢

最简单的方法是将数据集转换为长格式(例如,通过使用 tidyr 包中的 gather 函数),然后使用 group 美学绘图在 ggplot.

我重新创建了你的数据集,假设你的组变量被命名为 "Group":

df <- read.table(text = "
Group                X1   X2   X3   X4   X5   X6
Modern_Dog     9.7 21.0 19.4  7.7 32.0 36.5
Golden_Jackal  8.1 16.7 18.3  7.0 30.3 32.9
Chinese_Wolf  13.5 27.3 26.8 10.6 41.9 48.1
Indian_Wolf   11.5 24.3 24.5  9.3 40.0 44.6
Cuon          10.7 23.5 21.4  8.5 28.8 37.6
Dingo          9.6 22.6 21.1  8.3 34.4 43.1 ",
  header = TRUE, stringsAsFactors = FALSE)

然后将数据集转换为长格式并绘制:

library(tidyr)
library(ggplot2)

df_long <- df %>% gather(X1:X6, key = "Month", value = "Rainfall")
ggplot(df_long, aes(x = Month, y = Rainfall, group = Group, shape = Group)) +
  geom_line() +
  geom_point() +
  theme(legend.position = "bottom")

另请参阅此处的答案:Group data and plot multiple lines