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

how to plot geom_col() to get y axis to center around 1 and not 0

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

基本上:如何让 Y1 为中心而不是 0

抱歉,如果我问的问题已经得到解答...也许我只是不知道正确的关键词?

ggplot(data = plotdata) +
  geom_col(aes(x = stressclass, y= meanexpress, color = stressclass, fill = stressclass)) +
  labs(x = "Stress Response Category", y = "Average Response Normalized to Control") +
  facet_grid(exposure_cond ~ .)

到目前为止,我的情节是这样的:

您可以预处理您的 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 ~ .)