绘制数据框的多行

时间:2013-09-03 08:39:09

标签: r

我有一个如下所示的数据框:

Date          Something    Values
2013-01-01    A            1093
2013-01-01    B            123
2013-01-01    C            4352
2013-01-02    C            13
2013-01-02    B            768
2013-01-02    A            56
2013-01-03    A            37
2013-01-03    C            1033
2013-01-03    B            3
2013-01-04    A            5
....

我想在X轴上绘制“日期”,在每个“Something”上绘制Y轴上的“值”。

我怎么能在R?中做到这一点?

2 个答案:

答案 0 :(得分:2)

请写下以下内容:

library(ggplot2)

a<-structure(list(Date = structure(c(15706, 15706, 15706, 15707, 
15707, 15707, 15708, 15708, 15708, 15709), class = "Date"), Something = structure(c(1L, 
2L, 3L, 3L, 2L, 1L, 1L, 3L, 2L, 1L), .Label = c("A", "B", "C"
), class = "factor"), Values = c(1093L, 123L, 4352L, 13L, 768L, 
56L, 37L, 1033L, 3L, 5L)), .Names = c("Date", "Something", "Values"
), row.names = c(NA, -10L), class = "data.frame")

ggplot(a, aes(x=Date, y=Values, color=Something, group=Something)) + geom_line()

根据您的帖子,a是您的data.frame。它看起来像:

The plot

答案 1 :(得分:1)

如果您的目的是为单个图表区域中的每个子集绘制单独的行(或字符),则可以使用plyr的各种技巧以有用的方式组织数据。为简单起见,这里有很长的路要走。

Val_A<-dataframe[dataframe$Something=="A",]
Val_B<-dataframe[dataframe$Something=="B",]
Val_C<-dataframe[dataframe$Something=="C",]

(等)

plot(Val_A$Date,Val_A$Values)
points(Val_B$Date,Val_B$Values,col='red')
points(Val_C$Date,Val_C$Values,col='green')

(等)

您可以想象,有更简洁的方法可以做到这一点。