首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将第二轴设置为第一轴的反方向?

如何将第二轴设置为第一轴的反方向?
EN

Stack Overflow用户
提问于 2019-07-26 15:53:31
回答 2查看 765关注 0票数 1

如何将二次y轴设置为主y轴的反方向?

函数sec_axis(trans = )不知何故不识别负乘数。

我把公式设为~.*-1~.*(2-4),结果是把它当作~.~.*2,就像忽略了负值一样。见结果1和2是输出图。

代码语言:javascript
复制
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)))

代码语言:javascript
复制
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行)反转,因为它是负的(不是),这样我就可以比较峰值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-26 17:28:58

试着做这样的事情:

代码语言:javascript
复制
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轴的线性变换。

票数 0
EN

Stack Overflow用户

发布于 2019-07-26 19:20:40

原来是个老问题。

将ggplot2从v3.1.0升级到v3.2.0解决了这个问题。

感谢@志强。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57223408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档