0

例如, aes 中的颜色参数始终将字符串视为不同的因素

colors = colorRampPalette(c("red", "blue"))(3)
#colors is a list of hex code for colors ranging from red to blue

dt = data.table(x = c(1,2,3), y = c(3,2,1), level = c(1,2,3))

ggplot(dt)+geom_point(aes(x = x, y = y, color = colors[level]))

这不会使用十六进制代码作为颜色的输入,而只是使用不同的因素。aes 中的颜色参数有什么方法可以实际使用十六进制代码吗?我知道有办法在 aes 之外做到这一点,但我需要根据数据的级别来制作颜色。具体来说,我想绘制一个 geom_point(),其中的点根据其级别从浅蓝色到深蓝色(并用不同的颜色覆盖另一个 geom_point()。所以我需要能够指定调色板。)

谢谢你。

4

1 回答 1

3

如果您I(...)在字段周围使用,ggplot2则将其解释为身份(真实颜色),而不是因素。

更正了语法错误的代码。

colors = colorRampPalette(c("red","blue"))(3)
dt = data.table(x = c(1,2,3), y = c(3,2,1), level = c(1,2,3))
ggplot(dt) +
  geom_point(aes(x = x, y = y, color = I(colors[level])), size = 5)

size此处仅用于演示。)

ggplot2

于 2020-04-09T02:21:06.453 回答