我看到过一些类似的问题,但我想尽可能直接地提出我的问题:
我有一个散点图,其中将“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”变量内的小差异。在这里,可以想象使用任何转换,而不是rank,但你明白我的意思。
我的问题本质上是:最直接的方法或最“真正的ggplot2”方式是什么,在保持着彩色点的转换版本的同时,以原始单位(z的单位)获得图例?
我有一种感觉这里会用到rescaler(),但我不清楚如何使用rescaler()进行任意转换等。总的来说,更清晰的示例将很有用。
非常感谢您的时间。