如何绘制 geom_col() 以使 y 轴以 1 而不是 0 为中心
how to plot geom_col() to get y axis to center around 1 and not 0
我正在使用 ggplot2
的 geom_bar
绘制一些数据。数据代表的比率应该以 1
为中心,而不是 0
。这将使我能够突出显示哪些类别低于或高于这个中心比率数字。我试过 set_y_continuous()
和 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 ~ .)
到目前为止,我的情节是这样的:
您可以预处理您的 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 ~ .)
我正在使用 ggplot2
的 geom_bar
绘制一些数据。数据代表的比率应该以 1
为中心,而不是 0
。这将使我能够突出显示哪些类别低于或高于这个中心比率数字。我试过 set_y_continuous()
和 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 ~ .)
到目前为止,我的情节是这样的:
您可以预处理您的 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 ~ .)