मुझे उम्मीद है कि ggplot2
की भयानक ग्राफिंग शक्ति के साथ grImport
की स्पिफी आयात और ड्राइंग शक्तियों को जोड़ सकते हैं, लेकिन मैं बस grid
सिस्टम को समझ नहीं पा रहा हूं जो मुझे प्राप्त करने का एक शानदार तरीका खोजने के लिए पर्याप्त है। मैं क्या चाहता हूं कि ggplot2
ग्राफ़ में x-axis टिक लेबल को grImport
का उपयोग करके आयातित छवियों के साथ प्रतिस्थापित करना है।मैं ggplot2 (ग्रिड फ़ंक्शंस का उपयोग करके) अक्ष अक्ष टिक लेबल के रूप में grImport के साथ आयात किए गए ग्राफ़िक का उपयोग कैसे कर सकता हूं?
के बाद से दोनों संकुल grid
कार्यों का उपयोग, मैं वहाँ आशा करती हूं कि grid.symbols()
उपयोग करने के लिए एक तरीका है या तो ggplot2
ढांचा है, जो आदर्श, या कम से कम एक डिवाइस में एक मौजूदा भूखंड पर किया जाएगा के भीतर। क्या ऐसी चीजों के बारे में अधिक जानकारी वाले किसी को ऐसा करने का एक मजबूत तरीका पता है? या, क्या कोई मुझे ग्रोब्स, व्यूपोर्ट्स इत्यादि के बारे में जानने में मदद करने के लिए मुझे अधिक जानकारी दे सकता है? मैंने ग्रिड ग्राफिक्स मॉडल पर free Chapter of Paul Murrel's R graphics book के माध्यम से पढ़ा है, लेकिन मैं लिंक बनाने के लिए ggplot2 के आंतरिक कार्यों के साथ पर्याप्त परिचित नहीं हूं।
मेरा प्रश्न an existing question about using an image as a plot point के समान है, हालांकि मुझे साजिश बिंदुओं की बजाय धुरी लेबल में अधिक रुचि है। हालांकि, मैं उत्सुक होगा कि दो कार्य कितने समान हैं, और यदि इस समाधान के लिए उस समाधान को अनुकूलित किया जा सकता है। मैं इसे अपने आप समझने में सक्षम नहीं था।
यह मेरी पहली पोस्ट है, इसलिए मुझे एक छवि पोस्ट करने की अनुमति नहीं है, लेकिन यह कोड मुझे जो कुछ चाहिए, उसके करीब कुछ प्राप्त करता है। नोट: यह दृष्टिकोण एक बदसूरत, बदसूरत हैक का उपयोग करता है जो पोर्टेबल नहीं है, और असंतोषजनक है। आखिरी साजिश जिसे मैं उत्पादित करना चाहता हूं, में पहलुओं (facet_grid
) होंगे, और एक्स-अक्ष एक कारक के लिए है, प्रत्येक अक्ष पर विभिन्न चित्रों के साथ, निरंतर परिवर्तनीय नहीं है, यही कारण है कि मैं एक अधिक सामान्य/मजबूत समाधान जिसके लिए बहुत परीक्षण की आवश्यकता नहीं है & त्रुटि।
library(ggplot2)
## library(grImport) # not needed for this example, but would be for grid.symbols()
p <- ggplot(mtcars, aes(cyl, mpg)) + stat_summary(fun.data = "mean_cl_boot")
print(p)
## Replace (in this case, overlay) x-axis tick labels with a graphic/grob
iconSize <- 0.05
iconHt <- 0.2
padding <- 0.09 # horizontal padding around axis: I found this by trial & error
tickSp <- (1-padding)/(4*2)
downViewport("axis_h-5-3")
## I would use grid.symbols() with an imported Picture in place of grid.circle(),
## but the idea is the same: draw a shape at the ticks along the axis.
for (i in 0:(max(mtcars$cyl) - min(mtcars$cyl)))
{
grid.circle(x = (padding/2 + tickSp*(i*2)), y = iconHt,
r = iconSize*(min(mtcars$cyl)+i), gp = gpar(fill="black"))
}
upViewport()
एक वैकल्पिक विकल्प 'उपयोग करने के लिए tikzDevice', और ([वेक्टर ग्राफिक्स डालें] को LaTeX प्राप्त होगा लेबल के स्थान पर http://groups.google.com/group/ggplot2/browse_thread/thread/38f8695ad55cc2d6?pli=1)। – baptiste
सभी निर्देशक उदाहरणों के लिए धन्यवाद @baptiste!, मुझे यह सब कुछ संसाधित करने में कुछ समय लगा, लेकिन वे बहुत उपयोगी थे (नीचे टिप्पणियां देखें)। मैं 'tikzDevice' दिमाग में रखूंगा, हालांकि यह इस बिंदु पर थोड़ी अधिक मात्रा में दिखता है। मैंने लिंक में उदाहरण का प्रयास किया, लेकिन यह त्रुटियों के साथ विफल रहा (लाटेक्स रासायनिक यौगिकों के लिए आदेशों को समझ नहीं पाया), और मेरे आर सत्र में कुछ बदलाव किए जिन्हें मैं समझ नहीं पाया कि फिर से शुरू किए बिना कैसे उलटना है आर :( –
इतना करीब है, लेकिन मैं प्रत्येक अक्ष टिक पर एक अलग तस्वीर रखना चाहता हूं। क्या किसी भी समाधान को अनुकूलित किया जा सकता है?वैकल्पिक रूप से, क्या एक्स-अक्ष टिक्स की स्थिति को इस तरह से निकालने का कोई तरीका है कि उन्हें लगातार कॉल में 'grid.symbols() 'या' प्रतीकों Grob() 'में उपयोग किया जा सकता है? 'TikzDevice' का उपयोग करके –