9

我有一个我想在 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 值。

4

1 回答 1

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)

在此处输入图像描述

ggplot2

library("ggplot2")
ggplot(DF, aes(x, y, colour=z)) +
  geom_point(shape=19) +
  scale_colour_gradient(low="blue", high="red")

在此处输入图像描述

于 2013-04-03T16:21:56.240 回答