【问题标题】:Cannot get plot and day wise date for variables by calling from excel sheet using ggplot2无法通过使用 ggplot2 从 excel 表调用来获取变量的绘图和日期日期
【发布时间】:2020-05-06 08:32:53
【问题描述】:

我正在尝试为两个变量绘制 geom_col,这是我从 Excel 表中调用的。数据采用时间序列格式。

这是我的数据集。我想在一个栏中为所有日期绘制变量“Johor”和“TCK”。

head(df2)
# A tibble: 6 x 33
  date       Johor   TCJ Kedah  TCKe Kelantan TCKlntn Melaka  TCMk N.Sembilan  TCN9 Pahang
  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>   <dbl>  <dbl> <dbl>      <dbl> <dbl>  <dbl>
1 2020-01-25     1     1     0     0        0       0      0     0          0     0      0
2 2020-01-26     0     1     0     0        0       0      0     0          0     0      0
3 2020-01-27     0     1     0     0        0       0      0     0          0     0      0
4 2020-01-28     1     2     1     1        0       0      0     0          0     0      0
5 2020-01-29     0     2     0     1        0       0      0     0          0     0      0
6 2020-01-30     1     3     0     1        0       0      0     0          0     0      0

这是我的 ggplot2 代码

ggplot(df2,aes(x=date, y=Johor, col=c(TCJ+Johor), group=c(TCJ+Johor)))+ 
  geom_col(aes(fill=c(TCJ+Johor)),width=0.5
  )+
  theme(axis.text.x = element_text(angle=15, vjust=0.4)) +
  labs(title="",
       subtitle="")

我也想在 x lab 中获得所有日期,但我知道我只能有月份

所需的绘图输出。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    关于堆积条形图:

    看来您需要将数据集设置为长格式(然后是 TCJ 和柔佛的过滤器):

    library("tidyverse")     
    df2 %>%
          pivot_longer(-date, names_to = "name", values_to = "value") %>%
          filter(name %in% c("Johor", "TCJ")) %>%
          ggplot(aes(date, value, fill = name)) +
          geom_col(position = "stack")
    

    【讨论】:

    • 非常感谢您的帮助。我避免以长格式转换数据集。我有任何函数可以直接将现有数据集转换为长数据集格式。
    • 我会调查 pivot_longer() ,但也许我误解了你的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多