我希望使用ggplot
的sec.axis
選項來生成顯示轉換的第二個X軸(稱爲Z)Z = X + sqrt(X^2 - X )。這種轉換通常不是單調的,但是在我的應用程序中可能存在的X範圍內單調(X> 1)。使用ggplot的sec.axis進行非單調轉換
我試過如下:
x1 = seq(1, 3.5, .1)
y = rnorm(n = length(x1))
d = data.frame(x1, y)
library(ggplot2)
ggplot(d, aes(x=x1, y=y)) + geom_point() +
scale_x_continuous(sec.axis = sec_axis(~ . + sqrt(.^2 - .)))
結果不但與錯誤和警告:
Error in f(..., self = self) :
transformation for secondary axes must be monotonous
In addition: Warning message:
In sqrt(.^2 - .) : NaNs produced
這兩表明,它正試圖以計算值的轉變與X < 1即使這對情節不是必要的。
如何繪製我的有效單調變換?我需要一個合理的通用解決方案,因爲這是一個函數,X的範圍部分是用戶指定的(但總是> 1)。