我有一个数据集,提供有关产品的信息,我想绘制一些关于2年内每个月的统计数据。我已经完成了所需的工作,以达到我想要的这个阶段。
df <- structure(list(how_many = c(14L, 654L, 8L, 373L, 33L, 240L, 48L,
242L, 2L, 45L, 239L, 5L, 29L, 206L, 20L, 29L, 194L, 49L, 25L,
143L, 17L, 21L, 121L, 12L, 22L, 83L, 1L, 20L, 90L, 15L, 713L),
prod_vers = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 1L, 2L), .Label = c("v1", "v2", "v3"), class = "factor"),
when = structure(c(16801, 16801, 16832, 16832, 16495, 16861,
16526, 16892, 16892, 16556, 16922, 16922, 16587, 16953, 16953,
16617, 16617, 16983, 16648, 17014, 17014, 16679, 16679, 17045,
16709, 17075, 17075, 16740, 16740, 16770, 16770), class = "Date")), .Names = c("how_many",
"prod_vers", "when"), row.names = c(NA, -31L), class = "data.frame")
how_many prod_vers when
1 14 v1 2016-01
2 654 v2 2016-01
3 8 v1 2016-02
4 373 v2 2016-02
5 33 v1 2015-03
6 240 v2 2016-03
7 48 v1 2015-04
8 242 v2 2016-04
9 2 v3 2016-04
10 45 v1 2015-05
11 239 v2 2016-05
12 5 v3 2016-05
13 29 v1 2015-06
14 206 v2 2016-06
15 20 v3 2016-06
16 29 v1 2015-07
17 194 v2 2015-07
18 49 v3 2016-07
19 25 v1 2015-08
20 143 v2 2016-08
21 17 v3 2016-08
22 21 v1 2015-09
23 121 v2 2015-09
24 12 v3 2016-09
25 22 v1 2015-10
26 83 v2 2016-10
27 1 v3 2016-10
但我不知道如何策划它。我尝试过barplot,但它没有用。我还考虑过这样做:考虑到他们相应产品版本的大量月份:
一个包含2015年及其月份和版本的图表,以及2016年的一个图表。我不确定它是否会看起来整洁
同样在每个月的每个版本中绘制他们自己的情节都会有很多情节。
总结一下我如何策划这个?
答案 0 :(得分:1)
df <- structure(list(how_many = c(14L, 654L, 8L, 373L, 33L, 240L, 48L,
242L, 2L, 45L, 239L, 5L, 29L, 206L, 20L, 29L, 194L, 49L, 25L,
143L, 17L, 21L, 121L, 12L, 22L, 83L, 1L, 20L, 90L, 15L, 713L),
prod_vers = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 1L, 2L), .Label = c("v1", "v2", "v3"), class = "factor"),
when = structure(c(16801, 16801, 16832, 16832, 16495, 16861,
16526, 16892, 16892, 16556, 16922, 16922, 16587, 16953, 16953,
16617, 16617, 16983, 16648, 17014, 17014, 16679, 16679, 17045,
16709, 17075, 17075, 16740, 16740, 16770, 16770), class = "Date")), .Names = c("how_many",
"prod_vers", "when"), row.names = c(NA, -31L), class = "data.frame")
df$when <- as.Date(paste0(as.character(df$when), "-01"))
library(ggplot2)
ggplot(df, aes(x = when, y = how_many)) +
geom_line() +
facet_grid(~prod_vers)
这个怎么样?您可以使用scales
中的facet_grid
选项(例如scales = 'free_y'
)为方面使用不同的比例。
答案 1 :(得分:1)
您可以使用构面按组分隔数据,如下所示:
data <- read.csv("DataforSover.csv")
colnames(data) <- c("X", "count", "app_version", "dt")
data$dt <- as.character(data$dt)
ggplot(data, aes(x = dt, y = count)) +
geom_bar(stat="identity") +
facet_grid(app_version ~ .) +
xlab("Month") +
ylab("Count") +
ggtitle("Count by Month & App Version")
ggplot(data, aes(x = dt, y = count)) +
geom_bar(stat="identity") +
facet_grid(app_version ~ substring(dt, 1, 4)) +
xlab("Month") +
ylab("Count") +
ggtitle("Count by Month, Year & App Version")