散点图中的色点基于R中的第三个变量

时间:2018-06-06 09:43:04

标签: r dataframe plot

我目前正在编写一段代码,我正在相互绘制两个变量。但是,我的数据包含一个变量,我想用它来为散点图中的点着色并显示第三个变量的图例。 这是一个(简化的)示例数据框:

df  <- data.frame(id = 1:N, x1 = rnorm(N), x2 = rnorm(N), x3 = rnorm(N))

我只是尝试使用此(简化)代码将颜色附加到相关点:

plot(df$x1,df$x2, col=df$x3)

但是,这似乎不起作用。我会感谢有用的建议。我希望有这样的情节(取自R-bloggers):

This is what I imagined it to look like

欢呼声

2 个答案:

答案 0 :(得分:1)

您需要为&#39; col&#39;。

使用正值

快速修复:使用x3 = abs(rnorm(N))

要获得更多控制权:使用实际颜色而不是数字。像&#39; red&#39;,&#39; blue&#39;等字符串。 would work。或者您可以使用colors <- rainbow(10)这样的调色板来为您提供一组颜色,您可以根据需要分配颜色

示例:

df  <- data.frame(id = 1:N, x1 = rnorm(N), x2 = rnorm(N), x3 = sample(rainbow(5),N,replace=T) )
plot(x=df$x1, y=df$x2, col=df$x3, pch=19)

编辑:

您也可以使用

rgb(red, green, blue, alpha, maxColorValue = 1)

重新缩放以控制它们将根据其值映射到的颜色

答案 1 :(得分:0)

那样的东西?

N=5
df  <- data.frame(id = 1:N, x1 = rnorm(N), x2 = rnorm(N), x3 = rnorm(N))%>%
  mutate(col=Hmisc::cut2(x3,g=3))
ggplot(df,aes(x=x1,y=x2,col=col))+geom_point()