2013-02-18 5 views
1

J'ai une table avec 3 colonnes numériques. Deux d'entre eux sont des coordonnées et le troisième signifie la couleur. Il y a des centaines de lignes dans mon fichier texte. Je veux faire une image, où les premiers chiffres signifient les coordonnées de chaque point et le troisième est la couleur du point. Le plus grand nombre - le point le plus sombre. Comment est-ce que je pourrais faire ceci? L'exemple de la ligne dans mon dossier:points de couleur dans R

99.421875 48.921875 0.000362286050144 
+0

Quels sont exactement vous complotez encore? Je trouve cela encore flou. – Arun

+0

Je veux faire un point plot, où la première colonne de mon fichier est X, la seconde est Y et la troisième est la couleur du point. Lorsque le troisième nombre est petit, le point devrait être plus clair, et quand il est grand, le point est rouge foncé par exemple. – user2080209

+0

Cherchez-vous une solution de base ou est-ce que 'ggplot2' va bien? – Arun

Répondre

0

Est-ce que cela?

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

Terrain:

ggplot2_alpha

+0

Merci beaucoup! – user2080209

0

Une solution 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 commande ici la transparence.

enter image description here

0

Voici une solution de base R:

##Generate data 
##Here z lies between 0 and 10 
dd = data.frame(x = runif(100), y= runif(100), z= runif(100, 0, 10)) 

normalisent d'abord z:

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

tracer ensuite normalement en utilisant la taille de z pour le s Hading:

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

Merci beaucoup! – user2080209

0

Une autre solution base à l'aide ... pour changer la couleur, vous pouvez remplacer certaines des données [3] à 0 à l'intérieur du 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) 
Questions connexes