当我在绘图中添加辅助轴时,转换公式会发生一些奇怪的事情。我很困惑,所以我创建了一个非常简单的reprex。我希望~ -.
公式仅显示负数,但这不起作用。请帮忙:)
library(tibble)
library(ggplot2)
dat <- tibble(x = 1:10, y = 11:20)
pl <- ggplot(dat, aes(x = x, y = y)) +
geom_point()
# add a secondary "negative" axis as an example
pl +
scale_y_continuous("positive", sec.axis = sec_axis(~ -., "negative!"))
# do the same on a reversed axis
pl +
scale_y_reverse("positive", sec.axis = sec_axis(~ -., "negative!"))
# my actual formula that isn't showing up correctly
pl +
scale_y_reverse(sec.axis = sec_axis(
~ sqrt((0.0449 * 1e6) / (. - 0.167)) - 273.15,
"Temperature (°C)"))
答案 0 :(得分:1)
作为一种解决方法,您可以对标签进行操作,而无需变换轴。标签参数可以是一个将断点作为输入并返回标签作为输出的函数:
pl +
scale_y_continuous("positive",
sec.axis = sec_axis(trans= ~ ., labels= function(x) -x, "negative!"))
或者您可以直接使用`-`
函数来保存一些键入内容:
pl +
scale_y_continuous("positive",
sec.axis = sec_axis(trans= ~ ., labels= `-`, "negative!"))
因此,对于您的实际用例,采用转换的负值,这会在辅助轴上产生正值(避免了转换错误),然后使标签成为这些正转换值的负值:
pl +
scale_y_reverse(sec.axis = sec_axis(
~ -(sqrt((0.0449 * 1e6) / (. - 0.167)) - 273.15),
labels = `-`,
"Temperature (°C)"))
答案 1 :(得分:1)
Brian向我指出了github上的问题,他们现在mention that this will be fixed in a future release。安装此pull request的开发版本使我可以在没有其他解决方法的情况下使其正常工作:
devtools::install_github("tidyverse/ggplot2#3040")