我是R的新手,我已经能够绘制点,但想知道是否有办法将颜色渐变应用于散点图。
我有一个3列矩阵,其中前两个将用作坐标,第三个具有0到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)
答案 0 :(得分: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")
答案 1 :(得分:2)
怎么样
plot(x, y, col = gray(z/0.0001))
这是灰色的。
答案 2 :(得分: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)