2012-10-30 10 views
11

में लेबल के बजाय छवि का उपयोग करें मेरे पास ggplot2 में कहें, कहें, 2 लाइनें, और पौराणिक कथाओं में मेरे पास "शार्क" और "बाघ" हैं। क्या इस तरह के पाठ की बजाय किंवदंती में शार्क/बाघ छवियां दिखाई दे सकती हैं?ggplot2 legend

+1

मैं कहना है कि यह असंभव है नहीं जा रहा हूँ, लेकिन किसी भी समाधान आप आर में मिलता है बस फ़ोटोशॉप ऊपर फायरिंग से waaaay कठिन होने की संभावना है। (हालांकि, 'grid.raster' को देखकर आप शुरू कर सकते हैं।) – joran

+0

या [gimp] (http://www.gimp.org/) खुले स्रोत aficionados के लिए वहां बाहर। – Chase

+0

हाँ, इसे रास्टर प्रोग्राम में हाथ से करना कोई नहीं है, यह बड़े पैमाने पर बार-बार ग्राफ पीढ़ी के लिए है :) – nicolaskruchten

उत्तर

32

आप एक eps या svg जैसा कि चित्र को बचाने के लिए ggsave का उपयोग कर बहुत से बेहतर कर रहे हैं, तो इलस्ट्रेटर (या खुले स्रोत समकक्ष) में खोलने और छवियों के साथ कथा का स्थान लिया। यदि आप आर में सभी को करने के लिए वास्तव में मृत सेट हैं, तो आप वर्तमान ggplot2 में annotation_raster का उपयोग कर सकते हैं और geom_text का उपयोग कर इसके आगे कुछ पाठ जोड़ सकते हैं। यहाँ एक किसी न किसी तरह का प्रयास है:

set.seed(10) 
library(ggplot2) 
library(RCurl) 
library(png) 
df <- data.frame(animal = sample(c("sharks", "tigers"),20, rep=T), time=1:20, 
       scariness = rnorm(20)*-20) 

shark <- readPNG(getURLContent("http://i.imgur.com/EOc2V.png")) 
tiger <- readPNG(getURLContent("http://i.imgur.com/zjIh5.png")) 

ggplot(df, aes(time, scariness, group = animal, color = animal)) + 
geom_line(show_guide = FALSE) + 
annotation_raster(tiger, xmin = nrow(df)-1, xmax = nrow(df), 
    ymin = max(df$scariness)-(.05*max(df$scariness)), 
    ymax = max(df$scariness), interpolate = T) + 
annotation_raster(shark, xmin = nrow(df)-1, xmax = nrow(df), 
    ymin = max(df$scariness)-(.1*max(df$scariness)), 
    ymax = max(df$scariness)-(.05*max(df$scariness)), interpolate = T) 

shark tiger scariness figure

+1

+1 यह अच्छा है। –

+8

आप, महोदय, 1000 इंटरनेट बीयर के लायक हैं। या संभवतः सिर्फ एक शार्क। यह आप पर निर्भर करता है। – joran

+0

बहुत बढ़िया कामकाज और उदाहरण! धन्यवाद! – nicolaskruchten