我有一个如下所示的数据框:
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?中做到这一点?
答案 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。它看起来像:
答案 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')
(等)
您可以想象,有更简洁的方法可以做到这一点。