दिलचस्प पोस्ट
क्या मैं दूसरे वर्ग में किसी गतिविधि का उद्देश्य बना सकता हूं? आईओएस 5 में मजबूत और कमजोर भंडारण की व्याख्या चयनकर्ता के साथ ओवरराइडिंग पद्धति 'छूएंगैगन: साथऐवेंट:' में असंगत प्रकार '(एनएसएसेट, यूआईईवेंट) -> ()' क्लास पथ और बिल्ड पथ के बीच अंतर क्या है इनपुट पूरा होने पर स्कैनर को समाप्त कैसे करें? java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet त्रुटि फ़ॉर्मेट किए गए बिगडीकेल मान मुद्रित कैसे करें? Twoway- बंधन दृश्य के निर्भरता संपत्ति देखने के लिए है? क्या डिफाल्ट की डिफ़ॉल्ट डिफॉल्ट_नेटरीटर की कुंजी को पास करने का एक चतुर तरीका है? एंड्रॉइड स्टूडियो में स्वच्छ और बिल्ड के समतुल्य? एंड्रॉइड एप्लिकेशन में एक्टिविटी के बीच डेटा कैसे प्राप्त करूं? मैं कैसे विशेष वर्णों के साथ सौदा करूँगा \ ^ $।? * * | + () [[मेरे रेगेक्स में? टुकड़ों का उपयोग करके वापस ढेर साफ़ करें Kotlin Bytecode – IntelliJ IDEA में विश्लेषण करने के लिए कैसे? सी # किसी प्रपत्र पर नियंत्रण की स्थिति प्राप्त करें

आर में, मैं ggplot2 के scale_fill_brewer में सिर्फ एक मान का रंग मान कैसे बदल सकता हूँ?

मेरे पास एक आर डेटाफ्रेम (डीएफ) है जो मैं ggplot2 में एक बार ग्राफ़ के रूप में चित्रण कर रहा हूं और डेटाफ्रेम ( df$type ) में एक कॉलम के आधार पर रंग भर रहा हूं। अभी, मैं रंगों को असाइन करने के लिए डिफ़ॉल्ट रंग पैटर्न (scale_fill_brewer) का उपयोग कर रहा हूं।

मैं एक रंग को काले रंग को कैसे आवंटित कर सकता हूँ, ( df$type == -1 ) और बाकी रंगों को असाइन करने के लिए scale_fill_brewer का उपयोग करें? (अन्य सभी df $ प्रकार 1 से एक्स के पूर्णांकों के एक सेट के भीतर होते हैं, जहां एक्स अद्वितीय मानों की संख्या है)

अब तक, मैं रंगों के सेट का पता लगाकर मैन्युअल रूप से ऐसा करने में सक्षम हुआ हूं, scale_fill_brewer, N अलग आइटम के लिए उपयोग करता है, फिर रंग काला की पूर्ति करता है और scale_fill_manual को scale_fill_manual

 rhg_cols1<- c("#000000","#F8766D","#7CAE00","#00BFC4","#C77CFF" ) ggplot(y=values,data=df, aes(x=name, fill=factor(type))) + geom_bar()+ scale_fill_manual(values = rhg_cols1) 

समस्या यह है कि मुझे समाधान की आवश्यकता है जो scale_fill_brewer के हेक्स मूल्यों को जानने के लिए हेक्स रंग कैलकुलेटर का उपयोग करके मैन्युअल रूप से रंगों को निर्दिष्ट किए बिना काम करता है।

कुछ इस तरह:

 ggplot(y=values,data=df, aes(x=name, fill=factor(type))) + geom_bar()+ scale_fill_brewer(value(-1, "black") 

धन्यवाद!

संपादित करें: समाधान को 30 से अधिक रंगों के लिए काम करना चाहिए और रंगब्रेर के "सेट 2" के लिए काम करना चाहिए

Solutions Collecting From Web of "आर में, मैं ggplot2 के scale_fill_brewer में सिर्फ एक मान का रंग मान कैसे बदल सकता हूँ?"

पैकेज RColorBrewer में पैलेट शामिल हैं और आप अपनी पसंद का एक रंग पैलेट वापस करने के लिए फ़ंक्शन brewer.pal का उपयोग कर सकते हैं।

उदाहरण के लिए, 5 रंगों की एक अनुक्रमिक नीले पैलेट:

 library(RColorBrewer) my.cols <- brewer.pal(5, "Blues") my.cols [1] "#EFF3FF" "#BDD7E7" "#6BAED6" "#3182BD" "#08519C" 

आप ?brewer.pal सहायता फ़ाइलों में मान्य पैलेट नामों की एक सूची प्राप्त कर सकते हैं ये नाम रंगीन वेबसाइट पर मौजूद नामों के अनुरूप हैं।

अब आप परिणाम को संशोधित कर सकते हैं या संशोधित कर सकते हैं और इन्हें scale_manual_fill का ggplot करके scale_manual_fill पास भेज सकते हैं, scale_manual_fill कि आपने सुझाव दिया था:

 my.cols[1] <- "#000000" library(ggplot2) df <- data.frame(x=1:5, type=1:5) ggplot(df, aes(x=x, fill=factor(type))) + geom_bar(binwidth=1)+ scale_fill_manual(values = my.cols) 

यहां छवि विवरण दर्ज करें

यदि आपको इस कई (30+) अलग-अलग श्रेणियों में अंतर करने की आवश्यकता है तो आपको संभवत: इस परियोजना को रणनीतिक रूप से बैक अप लेने और कुछ और समय व्यतीत करने की आवश्यकता है: 30 कॉलो (यू) रुपये के सेट के साथ आने के लगभग असंभव होगा वास्तव में अलग-अलग हैं (विशेष रूप से ऐसे रास्ते में जो प्लेटफॉर्म से स्वतंत्र है / चैनल प्रदान कर रहा है)

मूल रूप से कोई समाधान नहीं है जो Set2 और 30+ रंगों के साथ काम करेगा। कुछ सीबी पट्टियाँ ( Set3 और Set3 ; library(RColorBrewer); display.brewer.all(n=12) ) के रूप में कई के रूप में 12 रंग की अनुमति

संपादित करें : ओपी अच्छा, अलग-अलग रंगों के साथ अन्वेषणपूर्ण डेटा विश्लेषण करना चाहता है, जो कि बहुत सी श्रेणियों के होने पर नहीं टूटेंगे। मैं इन पंक्तियों के साथ कुछ सुझाव दूंगा:

 library(RColorBrewer) my.cols <- function(n) { black <- "#000000" if (n <= 9) { c(black,brewer.pal(n-1, "Set2")) } else { c(black,hcl(h=seq(0,(n-2)/(n-1), length=n-1)*360,c=100,l=65,fixup=TRUE)) } } library(ggplot2) d <- data.frame(z=1:10) g1 <- qplot(z,z,data=d,colour=factor(z))+opts(legend.position="none") g1 + scale_colour_manual(values=my.cols(9)) g1 + scale_colour_manual(values=my.cols(10)) ## check that we successfully recreated ggplot2 internals ## g1+scale_colour_discrete() 

मुझे लगता है कि यह काफी अच्छा काम करता है (यदि आप पसंदीदा हैं तो आप सेट 3 और 13 रंगों का कटऑफ़ बदल सकते हैं)। एकमात्र दोष (जो मैं सोच सकता हूँ) 9 और 10 रंगों के साथ भूखंडों के बीच असंतुलन है

प्रोग्रामिंग तरीके से एन अलग-अलग रंगों के सेट को चुनने के लिए बेहतर समाधान के साथ चलना बहुत कठिन है …