2013-02-18 5 views
1

У меня есть таблица с 3 числовыми столбцами. Две из них - координаты, а третья - цвет. В моем текстовом файле сотни строк. Я хочу сделать снимок, где к первым числам относятся координаты каждой точки, а третья - цвет точки. Большее число - более темная точка. Как я мог это сделать? Пример строки в моем файле:цветные точки в R

99.421875 48.921875 0.000362286050144 
+0

Что именно вы снова замышляете? Я нахожу это еще неясным. – Arun

+0

Я хочу сделать сюжетный график, где первый столбец в моем файле X, второй - Y, а третий - цвет точки. Когда третье число является небольшим, точка должна быть светлее, а когда она большая, точка темная, например, – user2080209

+0

Вы ищете базовое решение или «ggplot2» хорошо? – Arun

ответ

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

Участок:

ggplot2_alpha

+0

Большое спасибо! – user2080209

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 здесь контролирует прозрачность.

enter image description here

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

Первый нормализуют г:

dd$z = dd$z- min(dd$z) 
dd$z = dd$z/max(dd$z) 

Затем участок в обычном режиме с использованием размера z для s залегающий наклонно:

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

enter image description here

+0

Спасибо вам большое! – user2080209

0

Другое решение с использованием базы ..., чтобы изменить цвет, вы можете заменить некоторые из данных [3] = 0 внутри 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) 
Смежные вопросы