我已经看到了一些类似的问题,但我想尽可能直接地问我的具体问题:
我有一个散点图,其中“z”变量编码为色标:
library(ggplot2)
myData <- data.frame(x = rnorm(1000),
y = rnorm(1000))
myData$z <- with(myData, x * y)
badVersion <- ggplot(myData,
aes(x = x, y = y, colour = z))
badVersion <- badVersion + geom_point()
print(badVersion)
产生这个:
如您所见,由于“z”变量是正态分布的,因此很少有点用分布的“极端”颜色着色。这是应该的,但我有兴趣强调差异。一种方法是使用:
betterVersion <- ggplot(myData,
aes(x = x, y = y, colour = rank(z)))
betterVersion <- betterVersion + geom_point()
print(betterVersion)
产生这个:
通过将 rank() 应用于“z”变量,我更加强调“z”变量内的细微差异。可以想象在这里使用任何转换,而不是排名,但你明白了。
我的问题是,本质上,什么是最直接的方式,或最“真正的 ggplot2”方式,以原始单位(z 的单位,而不是 z 的等级)获得图例,同时保持转换后的版本彩色点?
我有一种感觉,它以某种方式使用 rescaler(),但我不清楚如何使用 rescaler() 进行任意转换等。一般来说,更清晰的例子会很有用。
在此先感谢您的时间。