如何告诉 R 为我的几何点图表使用更广泛的颜色?

How to tell R to use wider range of colors for my geom point chart?

我正在使用 geom_point 创建 R 图表。下面是我正在使用的代码片段。

geom_point(aes(color=MyColumnHeading))

一切正常。到目前为止,一切都很好。我遇到的问题如下。 .CSV 文件中的 MyColumnHeading 列包含 “连续”数值。例如 99.5、98.2、96、85.5、60..等等。我想做的是描绘不同的 图表上使用不同颜色的数值,具体取决于数值。那也行。除了颜色都靠得太近 或太相似。默认情况下,R 使用色谱中非常窄的波段。周围都是蓝色,因此有各种深浅不一的蓝色。

深浅不一的蓝色太相似了,我分不清它们。对比度不够。 如果 R 要使用色谱中更广泛的颜色,我认为 它会更好用。例如,高值可能是红色,其他可能是绿色,有些是蓝色等

如果我在列中有离散值,而不是连续数值,并且我预先知道可能的离散值,以便更好地控制 描绘的颜色,我使用了以下 R 代码

scale_colour_manual(values=c("ColValue1"="lightblue","ColValue2"="brown","ColValue3"="orange","ColValue4"="red"))

并且有效。但是在目前的情况下,我真的不知道所有连续的列值,有太多不同的值。

有没有办法让我指定 R 使用色谱中更广泛的颜色?并解决我的问题?

或者其他方式让我在代表不同连续数值的描绘颜色之间具有高对比度?

谢谢 D

您可以按照 Stefan 的建议使用 scale_color_gradientn,不过使用 scale_color_distiller

p <- ggplot(df, aes(x, y)) +
  geom_point(aes(color = MyColumnHeader), size = 5) +
  theme_light(base_size = 16)

p + scale_color_distiller(palette = "Spectral")

您也可以使用 scale_color_viridis_c

p + scale_color_viridis_c()

这两者都能够 select 一系列不同的调色板,您可以在各自的帮助文件中找到它们。


Made-up数据集

set.seed(1)
df <- data.frame(x = runif(100), y = runif(100),
                 MyColumnHeader = sample(100))