0

我有一个看起来像这样的数据框:

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 轴上绘制“日期”,在 Y 轴上绘制“值”。

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

4

2 回答 2

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 。它看起来像:

剧情

于 2013-09-03T09:03:27.933 回答
1

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

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

(ETC)

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')

(ETC)

正如您可以想象的那样,有很多更紧凑的方法可以做到这一点。

于 2013-09-03T11:32:03.103 回答