5

我是 R 新手,我已经能够绘制点,但想知道是否有办法将颜色渐变应用于散点图。

我有一个 3 列矩阵,其中前两个将用作坐标,第三个的数字范围在 0 到 .0001 之间。有没有办法根据它们在数字范围内的位置为绘图点着色?

 x   y   z
 15  3   6e-4
 34  22  1e-10
 24  1   5e-2
 ...

plot(x, y, main= "Title", ylab = "column y", xlab = "column x", col = rgb(0,100,0,50,maxColorValue=255), pch=16) 
4

3 回答 3

3

我很喜欢这个ggplot2包,因为它在鼓励良好的绘图习惯方面做了很多工作(尽管一开始语法有点混乱):

require(ggplot2)
df <- data.frame(x=x, y=y, z=z) #ggplot2 only likes to deal with data frames
ggplot2(df, aes(x=x, y=y, colour=z) + #create the 'base layer' of the plot
  geom_point() + #represent the data with points
  scale_colour_gradient(low="black", high="green") + #you have lots of options for color mapping
  scale_x_continuous("column x") + #you can use scale_... to modify the scale in lots of other ways
  scale_y_continuous("column y") +
  ggtitle("Title") 
于 2012-10-20T21:53:57.730 回答
2

怎么样

plot(x, y, col = gray(z/0.0001)) 

这是灰色的。

于 2012-10-20T05:57:55.710 回答
0

迟到了,但为了他人的利益,这可能是你所追求的:

mat = cbind(sample(1:30), sample(1:30), 10*rnorm(30,mean=5))
n = 255
data_seq = seq(min(mat[,3]), max(mat[,3]), length=n)
col_pal = colorRampPalette(c('darkblue','orange'))(n+1)
cols = col_pal[ cut(mat[,3], data_seq, include.lowest=T) ]
plot(mat[, 1:2], col = cols, pch=16, cex=2)
于 2015-02-07T11:36:14.183 回答