R 更改ggplot中的y轴中心

R 更改ggplot中的y轴中心,r,ggplot2,continuous,R,Ggplot2,Continuous,在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", pos

在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,-1实际上应该是0,等等。

使用手动移动的比率值,您可以通过提供一个labels参数来调整其标签,以缩放连续并将其移回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实现相同的功能将是非常困难的,因此这似乎是最简单的选项。

我试图以一种方式将其可视化,即值高于或低于1,而不是高于或低于0。日志转换比率非常常见,这会给你你想要的尺度:对数比率<0对应比率<1,>0对应比率>1.ya,我以前做过,但我试图重新创建一个excel中的数字,他们的中心是1,但我想我可能不得不从统计学的角度来论证对数转换,对数转换比率通常是明智的选择,因为比率数据通常至少近似对数正态分布。我从未见过比率数据被线性移动到以1为中心。