Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的色点_R_Plot - Fatal编程技术网

R中的色点

R中的色点,r,plot,R,Plot,我有一个有3个数字列的表。其中两个是坐标,第三个是颜色。我的文本文件中有数百行。 我想画一张图,第一个数字表示每个点的坐标,第三个是点的颜色。数字越大,点越暗。 我怎么能这样做? 我的文件中的行示例如下: 99.421875 48.921875 0.000362286050144 晶格解决方案: library(lattice) mydata <- matrix(c(1,2,3,1,1,1,2,5,10),nrow=3) xyplot(mydata[,2] ~ mydata[,1

我有一个有3个数字列的表。其中两个是坐标,第三个是颜色。我的文本文件中有数百行。 我想画一张图,第一个数字表示每个点的坐标,第三个是点的颜色。数字越大,点越暗。 我怎么能这样做? 我的文件中的行示例如下:

99.421875   48.921875   0.000362286050144
晶格解决方案:

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)
##Generate data
##Here z lies between 0 and 10
dd = data.frame(x = runif(100), y= runif(100), z= runif(100, 0, 10))
alpha在此控制透明度

这样行吗

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)))
绘图:


下面是一个基本的R解决方案:

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)
##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)

另一个解决方案是使用base。。。要更改颜色,可以将rgb中的部分数据[,3]替换为0


你到底在策划什么?我还不清楚,我想画一个点图,文件中的第一列是X,第二列是Y,第三列是点的颜色。当第三个数字较小时,点应该较亮,当第三个数字较大时,点为暗红色。例如,您是在寻找基本解决方案还是ggplot2也可以?没关系,我只需要一张图片:第三列的最小值和最大值是哪一个?