如何制作X轴包含间隙的条形图

时间:2019-06-10 15:59:01

标签: r ggplot2 bar-chart

我希望条形图的x轴为连续刻度。

这是我的数据:

list(
 Century = c(1, 2, 3, 4, 5), 
 CenturyLabel = c("1st", "Bit later", "", "", "Post-Roman"), 
 Value = c(.2, .3, 0, 0, .4) ) %>% as_tibble()

我希望看到1、2和5世纪的酒吧,在3、4世纪有空白。

1 个答案:

答案 0 :(得分:1)

诀窍是将x轴变量定义为 factor

library("dplyr")

df <- tibble(
 Century = c(1, 2, 3, 4, 5), 
 CenturyLabel = c("1st", "Bit later", "", "", "Post-Roman"), 
 Value = c(.2, .3, 0, 0, .4) )

df$CenturyFactor <- factor(df$Century, labels = df$CenturyLabel), ordered = TRUE)

然后,您可以将CenturyFactor用作x轴变量,并且会看到任何正确的绘图库之间的空白...值得注意的是,任何重复的标签都会导致几个世纪的历史被合并!

解决此问题的一种方法是绘制Century(1到5),但调整标签以显示CenturyLabel。这将是特定于库的。不需要任何因素。

使用ggplot2:

library("ggplot2")

ggplot(df, aes(x = Century, y = Value)) +
  geom_col() +
  scale_x_continuous(labels = df$CenturyLabel, breaks = df$Century)

Plot with gaps