2013-01-01 3 views
13

Próbuję opracować wykresy obrazkowe. Czy jest możliwe opracowanie takich wykresów w R? enter image description herewykres obrazkowy w r

myd <- data.frame (categories = c("Planes", "Ships", "Cars", "Trains"), 
values = c(15, 18, 22, 11)) 

Części ikony są tutaj:

enter image description here enter image description here enter image description here enter image description here

+3

Jest to z pewnością możliwe * * ale to prawdopodobnie będzie wymagać dużo pracy. Spójrz na http://stackoverflow.com/questions/2181902/how-to-use-an-image-as-a-point-in-ggplot, a także spójrz na 'multsymbolbox' w pakiecie' plotrix' –

+5

rodzaj diagramu oblewa test Tufte'a. Za dużo atramentu za mało informacji. Co gorsza, trudno jest stwierdzić, czy jeden samochód, na przykład, jest wart więcej niż jeden pociąg. –

+1

prawda może być dobre w czasopiśmie naukowym, ale nadal może być przydatna w domu/parlamentu, spotkanie biznesowe lub ogólne spotkania publiczne. – shNIL

Odpowiedz

6

nadzieja, że ​​będzie to pomocne cztery Twój dom/parlament piętro

Edit: I zapomnij wspomnieć o moich reference i Dodaję wyjaśnienia. enter image description here

library(lattice) 
library(grid) 


imgs.names <- c('WNinq','7dqJM','9E3Wj','tStmx') 
library(png) 
images <- lapply(imgs.names, function(x) 
    readPNG(paste(mypath,x,'.png',sep=''),native=TRUE)) 
## I generate some data because we don't give a reproducible example 
x <- c(rep(0,4),rep(10,9),rep(20,3),rep(5,8),rep(4,8),rep(15,4),rep(13,8)) 
barchart(1:4~x, origin=0, col="yellow",xlim=c(0,30), 
      xlab ='values',ylab='categories',title = 'Pictorial', 
      scales = list(
       y = list(cex=2,col='blue', at = 1:4,labels = c('Trains','Cars','Ships','Planes')), 
       x = list(cex=2,col='blue',at=seq(0,30,by=10)) 
       ), 
      panel=function(x, y, ...) { 
       panel.fill(col = rgb(1,1,205/255)) ## I had to pick up the same yellow color!! 
       panel.grid() 
       lapply(1:4,function(id){ 
       grid.raster(images[[id]], x=x[which(y==id)], y=y[which(y==id)], 
          default.units="native", 
          just="left", 
          width =unit(2, "native"), 
          height=unit(0.7, "native")) 
       } 
      ) 
      } 
     ) 
+0

dziękuję, że trafi prosto na podłogę @fpdr dzięki za pytanie – shNIL

+0

@shNIL Jestem zaskoczony, że proszą o taki schemat! – agstudy