编辑
似乎sec_axisggplot2 3.1.0中的错误行为是一个错误.这已得到开发人员的认可,他们正在修复(参见 GitHub上的线程).
目标
我有一个图形,其中y轴的范围从0到1.我想添加一个从0到0.5的辅助y轴(所以正好是主y轴的一半值).到目前为止没问题.
使问题复杂化的是,我对y轴进行了自定义变换,其中y轴的一部分线性显示,其余部分以对数方式显示(参见下面的代码示例).供参考,请参阅此文章或本文.
问题
这使用ggplot2版本3.0.0非常漂亮,但使用最新版本(3.1.0)不再有效.见下面的例子.我不知道如何在最新版本中修复它.
来自更改日志:
当应用于日志转换后的比例时,sec_axis()和dup_axis()现在返回辅助轴的适当中断
在混合变换的y轴的情况下,这种新功能似乎打破了.
可重复的例子
以下是使用ggplot2的最新版本(3.1.0)的示例:
devtools::install_github("tidyverse/ggplot2")
Run Code Online (Sandbox Code Playgroud)
这会产生以下情节:
次级y轴的标记对于轴的对数部分(低于0.5)是正确的,但对于轴的线性部分是错误的.
如果我使用安装ggplot2 3.0.0
library(ggplot2)
library(scales)
#-------------------------------------------------------------------------------------------------------
# Custom y-axis
#-------------------------------------------------------------------------------------------------------
magnify_trans_log <- function(interval_low = 0.05, interval_high = 1, reducer = 0.05, reducer2 = 8) {
trans <- Vectorize(function(x, i_low = interval_low, i_high = interval_high, r = reducer, r2 = reducer2) {
if(is.na(x) || (x >= i_low & x <= i_high)) {
x
} else …Run Code Online (Sandbox Code Playgroud)