从数据框中绘制多条平滑线

时间:2012-06-13 12:27:14

标签: r graph plot

我对R比较陌生。我正在尝试绘制从csv文件加载的数据帧。数据由6列组成,如下所示:

xval,col1,col2,col3,col4,col5

第一列(xval)由一系列单调递增的正整数(例如10,40,60等)组成,其他列列为1到5,由浮点数组成。

我想在R中创建一个情节如下:

  • 在x轴上绘制xval项
  • 绘制剩余列(col1 ... col5)行
  • 使用col2创建图例图例,... col5重命名为

要绘制的数据(col1,... col5)是'快照'值,所以虽然我想将它们绘制成线条,但我想要对线条进行平滑处理(即插值)。

我正在寻找一个片段,帮助我在将数据读入数据帧后创建绘图。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:10)

看看ggplot2

#create dummy data
n <- 200
dataset <- data.frame(xval = runif(n), col1 = rnorm(n), col2 = rnorm(n, sd = 2), col3 = rnorm(n, mean = seq(0, 2, length = n)), col4 = rnorm(n, sd = seq(0, 1, length = n)), col5 = rnorm(n, mean = 1))
#convert data to long format
library(reshape)
Molten <- melt(dataset, id.vars = "xval")
#plot it
library(ggplot2)
ggplot(Molten, aes(x = xval, y = value, colour = variable)) + 
    geom_smooth() + geom_point()
#some tweaking
ggplot(Molten, aes(x = xval, y = value, colour = variable)) + 
    geom_smooth(se = FALSE) + geom_point() + theme_bw() + 
    scale_x_continuous("the x label") + scale_x_continuous("the y label") +
    scale_colour_discrete("")

enter image description here