我想在 ggplot2 图的右侧复制左侧 Y 轴,然后更改分类轴的刻度标签。
我已经阅读了 这个问题 的答案,但是正如可以在 该包的仓库页面 上看到的那样,cowplot
包中的 switch_axis_position()
函数已被移除(作者引用了 ggplot2 中即将推出的本机功能)。
我已经查看了 ggplot2 中关于辅助轴的参考页面,但是该文档中的所有示例都使用了 scale_y_continuous
而不是 scale_y_discrete
。而且,当我尝试使用离散函数时,我会收到错误提示:
Error in discrete_scale(c("y", "ymin", "ymax", "yend"), "position_d", :
unused argument (sec.axis = <environment>)
有没有办法用ggplot2做到这一点?即使是完全的hack解决方案对我也足够。提前致谢。(以下是MREs)
是否有任何方法使用ggplot2实现此目标?即使是一个被完全篡改的解决方案,对我来说也足够了。先感谢您。(下面是MREs)
library(ggplot2)
# Working continuous plot with 2 axes
ggplot(mtcars, aes(cyl, mpg)) +
geom_point() +
scale_y_continuous(sec.axis = sec_axis(~.+10))
# Working discrete plot with 1 axis
ggplot(mtcars, aes(cyl, as.factor(mpg))) +
geom_point()
# Broken discrete plot with 2 axes
ggplot(mtcars, aes(cyl, as.factor(mpg))) +
geom_point() +
scale_y_discrete(sec.axis = sec_axis(~.+10))
scale_y_discrete
的源代码,没有指定次坐标轴的选项/参数。因此,任何解决方案可能都需要进行一些修改。 - SymbolixAUscale_y/x_discrete()
中原生支持sec.axis
。 - maxheld