如何将二次y轴设置为主y轴的反方向?
函数sec_axis(trans = )不知何故不识别负乘数。
我把公式设为~.*-1和~.*(2-4),结果是把它当作~.和~.*2,就像忽略了负值一样。见结果1和2是输出图。
ggplot(d1_data[(d1_data$fc_date > "2016-10-01") ,]) +
geom_line(aes(x = fc_date, y = fault), color = "orange") +
geom_abline(slope = 0, intercept = quantile(y_test,0.975)) +
geom_line(aes(x = fc_date, y = -pred), color = "steelblue") +
geom_abline(slope = 0, intercept = -quantile(pred,0.975)) +
scale_y_continuous(breaks = c(0,5,10,15),
sec.axis = sec_axis(~.*-1, breaks = c(0,5,10,15)))

ggplot(d1_data[(d1_data$fc_date > "2016-10-01") ,]) +
geom_line(aes(x = fc_date, y = fault), color = "orange") +
geom_abline(slope = 0, intercept = quantile(y_test,0.975)) +
geom_line(aes(x = fc_date, y = -pred), color = "steelblue") +
geom_abline(slope = 0, intercept = -quantile(pred,0.975)) +
scale_y_continuous(breaks = c(0,5,10,15),
sec.axis = sec_axis(~.*(2-4), breaks = c(0,5,10,15)))

所期望的结果将是第二轴是翻转的主轴。
修改意见1:
当将断点设置为c(0,-5,-10,-15)时,它仍然给出相同的轴(作为主)。红色的标记是期望的结果。结果3
FYI:
蓝色和橙色的数据实际上都是正的,但它们重叠得太多,所以我将其中一个(第4行)反转,因为它是负的(不是),这样我就可以比较峰值。
发布于 2019-07-26 17:28:58
试着做这样的事情:
ggplot(mtcars) +
geom_line(aes(x=mpg, y = disp), color = "orange" ) +
geom_line(aes(x = mpg, y = -disp), color = "steelblue") +
scale_y_continuous(breaks = c(0,250, 500),
sec.axis = sec_axis(~.*-1, name = "wt", breaks = c(0,250, 500)))请注意:sec.axis = sec_axis(~.*-1, name = "wt", breaks = c(0,250, 500)))需要与行:geom_line(aes(x = mpg, y = -disp), color = "steelblue")保持一致。它应该是主y轴的线性变换。

发布于 2019-07-26 19:20:40
原来是个老问题。
将ggplot2从v3.1.0升级到v3.2.0解决了这个问题。
感谢@志强。
https://stackoverflow.com/questions/57223408
复制相似问题