是否有将ggplot中y轴的“中心”移动到1而不是0?我有比率数据,所以我试图以一种方式将值可视化,使其值大于或小于1,而不是大于或小于0。到目前为止,我只是从数据中减去1,并将其定为0左右,但是我重新标记y轴以使其反映我想要的数字一直失败。
chi_ratios_plot <- ggplot(data=chi_ratios, aes(x = metric, y =ratio2, fill=coral_cover))+
geom_bar(stat="identity", position="dodge")+
theme_classic()+
coord_flip()
答案 0 :(得分:1)
使用手动移动的比率值,您可以通过为labels
提供一个scale_y_continuous
参数并将其上移到1来修正其标签。
chi_ratios = expand.grid(
metric = c("A", "B", "C"),
coral_cover = c("Low", "Med", "High")
) %>%
# ratio: actual ratios
# ratio2: shifted so they're centered at 0
mutate(ratio = rnorm(n(), mean = 1, sd = 2),
ratio2 = ratio - 1)
ggplot(data=chi_ratios, aes(x = metric, y = ratio2, fill = coral_cover)) +
geom_col(position="dodge") +
scale_y_continuous(labels = function(breaks) { breaks + 1}) +
theme_classic() +
coord_flip()
我在geom_bar()
或geom_col()
中都看不到任何覆盖0基线的选项,并且用geom_rect()
实现相同的操作很容易,所以这似乎是最简单的选项。