我有一个包含3个数字列的表。其中两个是坐标,第三个是颜色。我的文本文件中有数百行。 我想拍一张照片,第一个数字的意思是每个点的坐标,第三个是点的颜色。数字越大 - 颜色越深。 我怎么能这样做? 我文件中行的示例:
99.421875 48.921875 0.000362286050144
答案 0 :(得分:0)
lattice
解决方案:
library(lattice)
mydata <- matrix(c(1,2,3,1,1,1,2,5,10),nrow=3)
xyplot(mydata[,2] ~ mydata[,1], col = mydata[,3], pch= 19 ,
alpha = (mydata[,3]/10), cex = 15)
alpha
此处控制透明度。
答案 1 :(得分:0)
这会吗?
require(ggplot2)
# assuming your data is in df and x,y, and col are the column names.
ggplot(data = df, aes(x = x, y = y)) +
geom_point(colour="red", size = 3, aes(alpha=col))
# sample data
set.seed(45)
df <- data.frame(x=runif(100)*sample(1:10, 100, replace=T),
y= runif(100*sample(1:50, 100, replace=T)),
col=runif(100/sample(1:100)))
简介:
答案 2 :(得分:0)
以下是基础R解决方案:
##Generate data
##Here z lies between 0 and 10
dd = data.frame(x = runif(100), y= runif(100), z= runif(100, 0, 10))
首先规范化z:
dd$z = dd$z- min(dd$z)
dd$z = dd$z/max(dd$z)
然后使用z的大小绘制正常阴影:
##See ?gray for other colour combinations
##pch=19 gives solid points. See ?point for other shapes
plot(dd$x, dd$y, col=gray(dd$z), pch=19)
答案 3 :(得分:0)
使用base ...更改颜色的另一种解决方案,你可以在rgb()
n <- 1000
data <- data.frame(x=runif(n),y=runif(n),col=runif(n))
plot(data[,1:2],col=rgb(data[,3],data[,3],data[,3],maxColorValue = max(data[,3])),pch=20)