更改X轴刻度

时间:2020-10-26 15:32:47

标签: r ggplot2

大家下午好

我在用ggplot绘制时间序列时遇到困难。我有一个时间序列,其中包含从2020-01-30到2020-10-22的每日数据。当我用以下代码绘制数据时,我得到了一个x轴,这根本不可读:

plot_cases <- ggplot(NULL, aes(x= Date, y= Count)) +
  xlab("Time") + ylab("Number of Cases") +
  scale_y_continuous(limits=c(0, 2000)) +
  scale_x_discrete() +
  geom_line(data = P_cases_reduced_aggregated_female, aes(colour = P_cases_reduced_aggregated_female$Sex, group = 1)) +
geom_line(data = P_cases_reduced_aggregated_male, aes(colour = P_cases_reduced_aggregated_male$Sex, group = 1)) +
  scale_color_manual(values=c("#FF00FF", "#000FFF"))

因此,我只想表示月份的缩写,例如“ Apr”,“ Jul”,“ Oct”。但是,当我使用以下代码时,我不再获得任何x轴刻度...

plot_cases <- ggplot(NULL, aes(x= Date, y= Count)) +
  xlab("Time") + ylab("Number of Cases") +
  scale_y_continuous(limits=c(0, 2000)) +
  scale_x_discrete(breaks = seq(as.Date("2020-01-30"), as.Date("2020-10-22"), by = "month")) +
  geom_line(data = P_cases_reduced_aggregated_female, aes(colour = P_cases_reduced_aggregated_female$Sex, group = 1)) +
geom_line(data = P_cases_reduced_aggregated_male, aes(colour = P_cases_reduced_aggregated_male$Sex, group = 1)) +
  scale_color_manual(values=c("#FF00FF", "#000FFF"))

作为你们其中一个的解决方案?我检查了先前有关scale_x_discrete的问题 但我仍然不知道如何进行相关更改。

非常感谢您。

1 个答案:

答案 0 :(得分:0)

遵循 @AllanCameron @ r2evans 的出色建议,首先在x轴上将日期转换为日期,然后使用scale_x_date()。由于缺少数据而未显示任何输出:

library(ggplot2)
#Code
plot_cases <- ggplot(NULL, aes(x= Date, y= Count)) +
  xlab("Time") + ylab("Number of Cases") +
  scale_y_continuous(limits=c(0, 2000)) +
  scale_x_date(date_labels="%B-%d",breaks = '7 days') +
  geom_line(data = P_cases_reduced_aggregated_female,
            aes(colour = P_cases_reduced_aggregated_female$Sex, group = 1)) +
  geom_line(data = P_cases_reduced_aggregated_male,
            aes(colour = P_cases_reduced_aggregated_male$Sex, group = 1)) +
  scale_color_manual(values=c("#FF00FF", "#000FFF"))+
  theme(axis.text.x = element_text(angle=90))