2012-12-31 16 views
11

Eventuali duplicati:
How to use an image as a point in ggplot?utenti proprio PCH (clip) in R

E 'possibile avere dall'utente PCH definito (clip art o un'icona o un altro tipo di file) utilizzato come punto in R base o ggplot o altro dispositivo grafico.

Ad esempio:

enter image description here

set.seed(123) 
mydt <- data.frame (x = rnorm(5, 5,2), y = rnorm (5,10,3), z = rnorm (5, 1,0.5)) 

enter image description here

Qui formato è proporzionale alla z.

+0

grImport sembra interessante, sono interessato a vedere come questo può essere utilizzato in questa situazione! – shNIL

risposta

16

Utilizzando grid.raster

library(png) 
flower <- readPNG("flower.png") 
pushViewport(plotViewport(margins=c(5,5,5,5))) 
grid.rect(gp = gpar(fill=NA)) 
pushViewport(plotViewport(margins=c(5,5,5,5), 
          xscale=extendrange(mydt$x), 
          yscale=extendrange(mydt$y))) 


grid.raster(image=flower,x=mydt$x,y=mydt$y,width=mydt$z, 
       interpolate=FALSE,default.units = 'native') 
grid.polyline(mydt$x,mydt$y,default.units='native') 
upViewport(2) 

enter image description here

+0

grazie per la soluzione, sembra un'alternativa più semplice a grImport (sto solo cercando di capire) – jon

+0

in realtà mi piacerebbe visualizzare l'etichetta dell'asse, l'esempio che ho fornito è stato disegnato a mano, ho dimenticato di menzionarlo – jon

+1

digitare grid.axis() prima della riga grid.raster. sono lontano da un pc per farlo. – agstudy

3

Per la grafica di base un'occhiata alle my.symbols e ms.image funzioni nel pacchetto TeachingDemos.