我有一个要在R中的图表上播放的点列表。为了获得3个级别的信息(X轴,Y轴和另一个),我想在图表上绘制点并为它们着色在第三个变量的比例上。我想要显示的每个点的百分比值为第三个变量(Z)。因此,如果A的Z值为0.95,我希望它是一个鲜红色,但由于B只有Z = 0.65,我希望它暗红色朝向蓝色。值从NA(我认为应该是蓝色)到0.99(亮红色)。
示例数据:
1 1 0.02937715
2 1 0.05872889
3 1 0.08802983
4 1 0.11725462
5 1 0.14637799
6 1 0.17537475
7 1 0.20421981
8 1 0.23288821
9 1 0.26135518
10 1 0.28959607
第三列给出Z值。
答案 0 :(得分:14)
一些可重复使用的数据会有所帮助:
DF <- expand.grid(x=1:100, y=1:100)
DF$z <- abs(sin(DF$x/34) * cos(DF$y/22))
x
和y
是1到100之间的网格; z
的范围介于0和1之间(函数没有特别的,只是保持在0和1之间,并且没有非常简单的结构)。
plot(DF$x, DF$y, col=rgb((colorRamp(c("blue", "red"))(DF$z))/255), pch=19)
library("ggplot2")
ggplot(DF, aes(x, y, colour=z)) +
geom_point(shape=19) +
scale_colour_gradient(low="blue", high="red")