【发布时间】:2018-07-19 23:46:02
【问题描述】:
我有一个像这样的数据集:
日期值标签
2016/01 2 年
2016 年 2 月 3 日
2016 年 3 月 4 日
2016 年 4 月 5 日
2016 年 5 月 4 日
2016/05 4 B
2016/06 5 B
2016/07 6 B
日期“2016/05”在我的数据集中出现了两次。我想使用 ggplot2 生成条形图。如何让条形图有两个相同的刻度标签?
目标图是这样的:
【问题讨论】:
我有一个像这样的数据集:
日期值标签
2016/01 2 年
2016 年 2 月 3 日
2016 年 3 月 4 日
2016 年 4 月 5 日
2016 年 5 月 4 日
2016/05 4 B
2016/06 5 B
2016/07 6 B
日期“2016/05”在我的数据集中出现了两次。我想使用 ggplot2 生成条形图。如何让条形图有两个相同的刻度标签?
目标图是这样的:
【问题讨论】:
一种选择是创建一个新的ID 列,以便您在 x 轴上有唯一的类别:
library(tidyverse)
df <- structure(list(Date = c("2016/01", "2016/02", "2016/03", "2016/04",
"2016/05", "2016/05", "2016/06", "2016/07"),
Value = c(2L, 3L,4L, 5L, 4L, 4L, 5L, 6L),
Label = c("A", "A", "A", "A", "A", "B", "B", "B")), .Names = c("Date", "Value", "Label"),
row.names = c(NA, -8L), class = c("tbl_df", "tbl", "data.frame"))
df %>%
unite(ID, Date, Label) %>%
ggplot(aes(ID, Value)) +
geom_col()
或者,您可以使用Label 列对数据进行分面,如下所示:
df %>%
ggplot(aes(Date, Value)) +
geom_col() +
facet_wrap(.~Label, scales = "free_x")
【讨论】:
facet_wrap(~Label, scales = "free_x")