2

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

基本上:我如何Y围绕1而不是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 ~ .)

截至目前我的情节是这样的:

在此处输入图像描述

4

1 回答 1

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 ~ .)

阴谋

于 2019-03-08T04:26:57.803 回答