如何绘制geom_col()以使y轴以1而非0为中心

时间:2019-03-07 23:37:31

标签: r ggplot2 bar-chart geom-col

我正在使用ggplot2的{​​{1}}绘制一些数据。数据表示的比率应以geom_bar为中心,而不是以1为中心。这将使我能够突出显示哪些类别低于或高于此中心比率数字。我尝试过使用0set_y_continuous(),但它们都不允许我发送中心轴值。

基本上:如何使ylim()Y而不是1为中心。

对不起,如果我要问的问题已经得到回答……也许我只是不知道正确的关键词?

0

到目前为止,我的情节看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以预处理y值,以使图实际从0开始,然后更改比例标签以反映原始值(以内置数据集演示):

library(dplyr)
library(ggplot2)

cut.off = 500                                            # (= 1 in your use case)

diamonds %>%
  filter(clarity %in% c("SI1", "VS2")) %>%
  count(cut, clarity) %>%
  mutate(n = n - cut.off) %>%                            # subtract cut.off from y values
  ggplot(aes(x = cut, y = n, fill = cut)) +
  geom_col() +
  geom_text(aes(label = n + cut.off,                     # label original values (optional)
                vjust = ifelse(n > 0, 0, 1))) +
  geom_hline(yintercept = 0) +
  scale_y_continuous(labels = function(x) x + cut.off) + # add cut.off to label values
  facet_grid(clarity ~ .)

plot