position_jitterdodge
साथ geom_point
का उपयोग करते हुए बिना उपयोग position_jitterdodge ही काम करता है जब आप को भरने सौंदर्य निर्धारित किया है। मैं नहीं देख सकता कि यह क्यों होना चाहिए! ,आर/ggplot - भरण सौंदर्य
Error: position_jitterdodge requires the following missing aesthetics: fill
यह काम करता है, हालांकि:
यह आदेश
library(ggplot2)
ggplot(diamonds[ sample(nrow(diamonds), 1000), ],
aes(x = cut, y = carat, color = clarity)) +
geom_point(shape = 21, position = position_jitterdodge())
एक त्रुटि का उत्पादन
ggplot(diamonds[ sample(nrow(diamonds), 1000), ],
aes(x = cut, y = carat, fill = clarity)) +
geom_point(shape = 21, position = position_jitterdodge())
सीधे शब्दों में करने के लिए एक एनए मूल्य की आपूर्ति भरने के लिए एक व्यवहार्य वैकल्पिक हल नहीं है:
ggplot(diamonds[ sample(nrow(diamonds), 1000), ],
aes(x = cut, y = carat, color = clarity, fill=NA)) +
geom_point(shape = 21, position = position_jitterdodge())
> Error in seq.default(h[1], h[2], length = n) :
'to' cannot be NA, NaN or infinite
हालांकि यह काम करता है अगर आप एक मनमाना निरंतर (माफ घृणित परिणाम) निर्दिष्ट करें:
ggplot(diamonds[ sample(nrow(diamonds), 1000), ],
aes(x = cut, y = carat, color = clarity, fill='constant')) +
geom_point(shape = 21, position = position_jitterdodge())
कैसे घबराना का उपयोग करने पर कोई भी विचार भरने के बिना/चकमा? (अर्थात रंग अंक केवल)
संपादित करें: @ Joran की टिप्पणी करने के लिए आगे, मैं boxplots अंक ओवरले करना चाहते हैं। के बाद से एक जरूरी fill
उपयोग करने के लिए boxplots अंतर करने के लिए नहीं जा रहा है, यह बहुत अच्छा है, तो geom_point(position=position_jitterdodge())
fill
बिना समायोजित भूखंडों होगा। हो सकता है कि वर्तमान में संभव नहीं है, हालांकि ...
#This doesn't work:
ggplot(diamonds[ sample(nrow(diamonds), 1000), ],
aes(x = cut, y = carat, color = clarity)) +
geom_boxplot() +
geom_point(shape = 21, position = position_jitterdodge())
#This does, although obviously no one wants a plot like this
ggplot(diamonds[ sample(nrow(diamonds), 1000), ],
aes(x = cut, y = carat, color = clarity, fill='constant')) +
geom_boxplot() +
geom_point(shape = 21, position = position_jitterdodge())
#This is way it's intended to work, but marries you to 'fill'
ggplot(diamonds[ sample(nrow(diamonds), 1000), ],
aes(x = cut, y = carat, fill = clarity)) +
geom_boxplot() +
geom_point(shape = 21, position = position_jitterdodge())
यह एक बग नहीं है के लिए एक अच्छे उम्मीदवार। इस _feature_ के मूल टाल बॉक्स भूखंडों जो 'fill' के माध्यम से टाल दिया है (जो स्पष्ट रूप से' पर दस्तावेज़ में संदर्भित है? position_jitterdodge') के शीर्ष पर बिंदु लगाने के लिए विशिष्ट आवश्यकता थी। मैं मानता हूं कि यह अच्छा होगा अगर यह बॉक्स प्लॉट के बिना काम करता है, लेकिन यह सिर्फ एक अप्रत्याशित उपयोग केस है, बग नहीं। – joran
असल में, बॉक्सप्लॉट्स पर ओवरलेइंग बिल्कुल वही है जो मैं करना चाहता हूं, हालांकि मेरे मामले में बॉक्सप्लॉट रंग से डूब गए हैं। मैंने बीसी के ऊपर के न्यूनतम उदाहरण से इसे छोड़ा, यह प्रासंगिक प्रतीत नहीं हुआ, लेकिन मैं इसे वापस जोड़ दूंगा। – arvi1000
मैं इसे ggplot2 फोर्किंग करके काम करने के लिए प्राप्त कर सकता हूं और भरने के बजाय 'रंग' का उपयोग करने के लिए बस 'position_jitterdodge' को संपादित कर सकता हूं। लेकिन मुझे यकीन नहीं है कि आप किसी भी मामले को संभालने के लिए उस समारोह को कैसे लिखेंगे (कम से कम, इसे अच्छी तरह से कैसे लिखना है)। – joran