csv文件中月份加年份R需要哪种格式才能在ggplot2的x轴上显示

时间:2018-10-17 02:53:43

标签: r ggplot2

我正在尝试创建一个热图,以显示2年每月的数据,月份在X轴上,月份在y轴上,数字为“填充”。

我的数据是

Month        District          Number
Jan-17       Lahore            10
Feb-17       Lahore            15
Mar-17       Lahore            2
Apr-17       Lahore            7
May-17       Lahore            8
Jun-17       Lahore            9
Jul-17       Lahore            20
Aug-17       Lahore            13
Sep-17       Lahore            22
Oct-17       Lahore            14
Nov-17       Lahore            5
Dec-17       Lahore            5
Jan-18       Lahore            19
Feb-18       Lahore            21
Mar-18       Lahore            2
Apr-18       Lahore            17
May-18       Lahore            18
Jun-18       Lahore            12
Jul-18       Lahore            9
Aug-18       Lahore            1
Sep-18       Lahore            1
Oct-18       Lahore            1  

数据仅显示一个地区/城市。在我的数据中,我有6个区。我使用的命令是:

ggplot(HEAT_MAP2, aes(x = Month, y = District, fill = Number)) +
  geom_tile() +
  scale_x_date(date_labels = "%b%Y") +
  scale_fill_gradient(low = "white", high = "darkgreen", name = "Your Legend")

但是它给出了错误

  

错误:将离散值提供给连续刻度

如何删除此错误以实现所需的图形。
非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

这是一个常见问题:问题是“月份+年”不是日期。日期需要日,月和年。

最简单的解决方案是添加每个月的第一天,以便将Month转换为日期。像这样:

library(dplyr)
library(ggplot2)

HEAT_MAP2 %>% 
  mutate(Date = as.Date(paste0("01-", Month), "%d-%b-%y")) %>% 
  ggplot(aes(x = Date, y = District, fill = Number)) +
    geom_tile() +
    scale_x_date(date_labels = "%b%Y") +
    scale_fill_gradient(low = "white", high = "darkgreen", name = "Your Legend")