首页 > 解决方案 > 如何在R中绘制不同列的数据

问题描述

我有以下数据框:

Class   Step    1   2   3
TestMe  1       5   10  6
TestMe  2       7   11  5
TestMe  3       9   13  9
TestMe  4       11  15  10
TestMe  5       13  18  4
TestMe  6       15  20  3
TestMe  7       17  23  8
TestMe  8       19  25  11
TestMe  9       21  27  13
TestMe  10      23  30  7

我想使用 R 生成一个图,这样

在此处输入图像描述

图中的每条线代表一个运行(即三个运行)。我尝试了以下方法:

dataset <- dataset %>% melt(id.vars = c("Class"))

dataset <- transform(dataset, value = as.numeric(value))

YaxisTitle <- "Fitness"

pp2 <- dataset %>% ggplot(aes(x=variable, y=value, group=Class, colour=Class)) +
  geom_line() +
  scale_x_discrete(breaks = seq(0, 10, 1)) +
  labs(x = as.character(dataset$Class), y = YaxisTitle) +
  theme(text = element_text(size=10),legend.position="none")

但我得到以下信息:

在此处输入图像描述

我该如何解决?

标签: rggplot2reshape

解决方案


我继续使您的数据可重现。我不确定我的答案是否正是您想要的,但从您的数据来看,这对我来说似乎是最明显的。

library(tidyverse)

dataset <- tribble(
  ~Class,   ~Step,  ~"1", ~"2", ~"3",
  "TestMe",  1,       5,   10,  6,
  "TestMe",  2,       7,   11,  5,
  "TestMe",  3,       9,   13,  9,
  "TestMe",  4,       11,  15,  10,
  "TestMe",  5,       13,  18,  4,
  "TestMe",  6,       15,  20,  3,
  "TestMe",  7,       17,  23,  8,
  "TestMe",  8,       19,  25,  11,
  "TestMe",  9,       21,  27,  13,
  "TestMe",  10,      23,  30,  7,
)

YaxisTitle <- "Fitness"

dataset <- dataset %>%
  gather("1", "2", "3", key = "variable", value = "value") 

  ggplot(dataset, aes(x=Step, y=value, group=variable, colour=variable)) +
  geom_line() +
  scale_x_discrete(breaks = seq(0, 10, 1)) +
  labs(x = as.character(dataset$Class), y = YaxisTitle) +
  theme(text = element_text(size=10),legend.position="none")

在此处输入图像描述


推荐阅读