2013-05-07 12 views
12

Bir arka plan görüntüsü üzerinde bazı verileri çizmeye çalışıyorum. Sorun, her iki tabakanın da aynı ölçeği kullanarak bitmesidir. Bu maalesef sorunlu.ggplot ile arka plan resmi üzerinde veri çizimi

Örnek.

Bu image üzerinden bazı verileri çizmek istiyorum.

sample image

Sağ. Ben de bunu ggplotta çiziyorum.

Ve iyi çalışıyor. Yani, üstüne biraz veri ekleyelim.

df <- data.frame(x=sample(1:64, 1000, replace=T), 
    y=sample(1:64, 1000, replace=T)) 
ggplot(df, aes(x,y)) + stat_bin2d() 

örnek verileri haritalayarak, ben this olsun. enter image description here

Bu nedenle, bu veri çiziminin degrade görüntüsünün üzerinde katmanlanmasını istiyorum.

ggplot(image, aes(row, -column, fill=fill)) + geom_tile() + 
    scale_fill_identity() + geom_point(data=df2, aes(x=x, y=-y)) 

Ama ikinci bir dolgu ölçeği bir hata atar belirtmek için çalışılıyor this

enter image description here

gibi biter. this'un görülemez olduğunu görüyorum, ama bir geçici çözüm veya baktığım bir şey olduğunu umuyorum.

+0

[Bu] (http://kohske.wordpress.com/2010/12/26/use-image-for-background (alternatif annotation_raster veya) bu deneyin -in-ggplot2 /) gönderi eski ve ggplot'un yeni sürümleri için bazı güncellemelere ihtiyaç duyacaktır, ancak en azından bir çıkış yolu önerebilir. – joran

cevap

17

library(ggplot2) 
library(jpeg) 
library(grid) 

img <- readJPEG("image.jpg") 

df <- data.frame(x=sample(1:64, 1000, replace=T), 
       y=sample(1:64, 1000, replace=T)) 

ggplot(df, aes(x,y)) + 
    annotation_custom(rasterGrob(img, width=unit(1,"npc"), height=unit(1,"npc")), 
        -Inf, Inf, -Inf, Inf) + 
    stat_bin2d() + 
    scale_x_continuous(expand=c(0,0)) + 
    scale_y_continuous(expand=c(0,0)) 

screenshot

+0

Bunun "coord_polar" ile çalışmadığını, ancak bu sorunun çözümü için bir çözüm bulabileceğine dikkat edin. Http://stackoverflow.com/questions/34496000/trying-to-add-an-image-to-a- kutup-arsa-verir-hata-açıklama-özel-only-işi. – Deleet