基本上,我有3个数值向量(X,Y,Z)一个数据帧,并且可以说,我想打x的散点图,Y为z着色。 我想与尊重符号的平方根改造colorscale,所以我做了我自己的trans_new。 下面是一个简单的数据集,但实际的变换。
library(ggplot2)
library(scales)
set.seed(1)
plot<-data.frame(x=rnorm(100),y=rnorm(100),z=rnorm(100))
super_trans <- function(){
trans_new('super', function(X) sapply(X,function(x) {if(x>0){x^0.5} else{-(- x)^0.5}}), function(X) sapply(X,function(x){ if(x>0){x^2} else{-x^2}}))
}
ggplot(plot,aes(x,y))+geom_point(aes(colour=z))+scale_colour_gradient(trans="super")
它给出了一个错误,
Error in if (x > 0) { : missing value where TRUE/FALSE needed
我不明白。 我试图原路返回的错误,我的猜测是,当trans_new试图使中断的错误发生。 但是,我不明白“休息”参数是如何工作的trans_new。 是否有GGPLOT2 /秤英雄在那里,这可以帮助我正确转换我的颜色,规模有多大?
这可能是相关的,只有一些数据集提供了错误。