修复ggplot中的刻度范围?(拓宽情节)

时间:2018-02-07 14:32:11

标签: r ggplot2

数据集具有以下结构:

    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

有这样的情节:

az$dt <- as.character(az$dt)
ggplot(az, aes(x = dt, y = nu)) +
  geom_bar(stat="identity") +
  facet_grid(app_version ~ .) +
  xlab("Month") +
  ylab("Count") +
  ggtitle("Count by Month & App Version")

ggplot(az, aes(x = dt, y = nu)) +
  geom_bar(stat="identity") +
  facet_grid(app_version ~ substring(dt, 1, 4)) +
  xlab("Month") +
  ylab("Count") +
  ggtitle("Count by Month, Year & App Version")][2]][2]

我想知道如何让刻度包括所有月份。我尝试了这个scale_x_continuous(breaks = seq(0, 155, 5), lim = c(0, 155)),但没有这样做。

情节: enter image description here以下是数据集:link

1 个答案:

答案 0 :(得分:3)

您实际上并不需要更改y轴。只需修复您的数据。例如

#Load package & data
library(ggplot2)
az = readr::read_csv("DataforSover.csv")
colnames(az)[2] = "nu"

首先我们将dt分组以提取年份和月份

az$year = substr(az$dt, 1, 4)
az$month = substr(az$dt, 6,7)

然后就像之前一样绘制

g = ggplot(az, aes(x = month, y = nu)) +
  geom_bar(stat="identity") +
  facet_grid(app_version ~ year) + 
  xlab("Month") +
  ylab("Count") +
  ggtitle("Count by Month, Year & App Version")

获得

enter image description here

如果您确实要调整x轴,则只需更改标签,例如

labels = rep("", 12)
labels[c(1, 6, 12)] = c("Jan", "Jun", "Dec")
g + scale_x_discrete(labels = labels)

enter image description here