【问题标题】:have plot points coloured on a spectrum in R在 R 的光谱上绘制绘图点
【发布时间】:2013-03-25 09:01:08
【问题描述】:

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

【问题讨论】:

  • 您使用的是哪种绘图系统?基础图形、晶格还是 ggplot2?
  • 现在是基础,但我不介意。

标签: r colors plot


【解决方案1】:

一些可重现的数据会有所帮助:

DF <- expand.grid(x=1:100, y=1:100)
DF$z <- abs(sin(DF$x/34) * cos(DF$y/22))

xy 是从 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")

【讨论】:

  • 嗨,Brian,很抱歉延迟回复,很忙,但我已经添加了示例数据。无论如何,我会按照你到目前为止给我的东西工作。
  • 我认为这个答案没有帮助,因为您提供了更多详细信息,但我不确定您想要更多详细信息。除了可能更改变量名称(我不知道您的变量名称是什么,因为它们不在示例中)之外,这些变量名称应该适用于您的数据。
  • 不不,它确实有帮助。我只是赏金,因为我非常感谢您的回答质量。
  • 这……并不是赏金的真正用途。不过没关系。
  • @PaulMurray 好吧,这是赏金系统的一种用法:meta.stackexchange.com/questions/176579/… 这与选择的原因不同(这就是我最初感到困惑的原因),但它是有效的原因。
猜你喜欢
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
相关资源
最近更新 更多