R使用ggplot绘制同一轴上多列的值

时间:2014-08-14 14:06:12

标签: r ggplot2

我有一个数据框,其中一个人的标记存储在多个列中,基于这样的类:

Sno.   Student Name Class1 Class2 Class3 Class4 Class5 Class6 Class7 Class8 
  3    1         XX     75     77     80     77     85     87     89     92    
  4    2         YY     90     90     87     83     80     78     76     75  

我想绘制x轴上的所有标记,y轴必须是1 -100。 - 谢谢Sven Hohenstein 我能够得到一个解决方案。 但是有另一种方法来解决这个问题。你的图表正是我希望输出看起来的样子。 但我确实有一个10行16列数据帧,如果我要融化它会产生一个巨大的数据帧。 如果有办法在不熔化数据框的情况下生成相同的图,那就更好了。

谢谢。

1 个答案:

答案 0 :(得分:8)

我不确定你正在寻找什么样的情节。这是一个提案。

阅读数据:

dat <- read.table(text = "Sno.   Student Name Class1 Class2 Class3 Class4 Class5 Class6 Class7 Class8 
3    1         XX     75     77     80     77     85     87     89     92    
4    2         YY     90     90     87     83     80     78     76     75", header = TRUE)

将数据重塑为长格式:

library(reshape2)
dat_m <- melt(dat, id.vars = "Student", 
              measure.vars = grep("^Class", names(dat), value = TRUE))

创建情节:

library(ggplot2)
ggplot(dat_m, aes(y = value, x = variable, colour = as.factor(Student))) +
      geom_point() +
      geom_line(aes(group = Student)) +
      coord_cartesian(ylim = c(1, 100))

enter image description here