r - दिए गए रंग के पारदर्शी समकक्ष




colors alpha-transparency (3)

आप पर एक नज़र है ?rgb ?

उपयोग:

आरजीबी (लाल, हरा, नीला, अल्फा, नाम = NULL, maxColorValue = 1)

एक अल्फा पारदर्शिता मूल्य भी निर्दिष्ट किया जा सकता है (एक अपारदर्शिता के रूप में, इसलिए '0' का अर्थ पूरी तरह से पारदर्शी है और 'अधिकतम' का अर्थ अपारदर्शी है)। यदि अल्फा 'निर्दिष्ट नहीं है, तो एक अपारदर्शी रंग उत्पन्न होता है।

alpha पैरामीटर पारदर्शिता निर्दिष्ट करने के लिए है। col2rgb आरजीबी में अन्य तरीकों से निर्दिष्ट आर रंगों को विभाजित करता है ताकि आप उन्हें rgb को खिला सकें।

मैंने इसे कुछ समय दिया है, इसलिए यहां जाता है: मैं कुछ प्लॉट बना रहा हूं जो एक ट्यूनिंग पैरामीटर दिए गए पैरामीटर के अनुमानों के साथ घटता है।

आमतौर पर, मेरे पास प्रत्येक अनुमानित मूल्य के लिए एसडी भी हैं, इसलिए मैं उनमें से प्रत्येक के आसपास त्रुटि बार दिखा सकता हूं।

हालाँकि, मुझे त्रुटि पट्टियाँ पसंद नहीं हैं, और इसके कुछ चिकने संस्करण पसंद करेंगे। यह अपने आप में कोई समस्या नहीं है (यानी मुझे पता है कि यह कैसे करना है)। हालाँकि, मेरे कथानक में इनमें से कई समान वक्र हैं, हर एक का अपना रंग है। इसलिए मैं एक रंग में प्रत्येक वक्र में 'स्मूथेड एररग्रेशन' जोड़ना चाहूंगा जो वक्र के रंग से मेल खाता हो। बेशक, मैं इसे कुछ हद तक पारदर्शी रूप से करना चाहूंगा, इसलिए मैं अभी भी 'त्रुटि क्षेत्र' के माध्यम से अन्य घटता देख सकता हूं।

इसलिए, मेरा प्रश्न है: एक रंग दिया गया (या तो एक संख्या, एक नाम या एक आरजीबी मूल्य द्वारा निर्दिष्ट --- पहले दो मुद्रा को एक अतिरिक्त समस्या नोट करें, लेकिन ऐसा अक्सर हो रहा है, क्योंकि मूल प्लॉटिंग फ़ंक्शन इन्हें वैध मानते हैं रंग मान), मैं कैसे मिल सकते हैं मिलान रंग जिसमें एक ही आरजीबी है, लेकिन एक अलग (दिया) अल्फा स्तर (पारदर्शिता) है। मैं एक समारोह की तरह होगा:

makeTransparent<-function(someColor, alpha=100)
{
  newColor<-someColor + alpha #I wish
  return(newColor)
}

इस तरह काम करना चाहिए:

makeTransparent(2)
makeTransparent("red")
makeTransparent(rgb(0,0,1))

संपादित करें जब मैं कुछ स्पष्ट याद करता हूं तो मैं उससे नफरत करता हूं, लेकिन @themel ने मुझे इसे इंगित किया (फिर से)। यहां एक पूर्ण समाधान है (ध्यान दें: वेक्टरयुक्त काम करता है, इसलिए आप एक से अधिक रंग पास कर सकते हैं; हालांकि इस समय केवल एक अल्फा का समर्थन किया जाता है):

#note: always pass alpha on the 0-255 scale
makeTransparent<-function(someColor, alpha=100)
{
  newColor<-col2rgb(someColor)
  apply(newColor, 2, function(curcoldata){rgb(red=curcoldata[1], green=curcoldata[2],
    blue=curcoldata[3],alpha=alpha, maxColorValue=255)})
}

उत्तर देने के लिए बहुमूल्य टिप्पणी देना:

पैकेज scales से alpha उपयोग करें - पहला तर्क रंग है, दूसरा अल्फा (0-1 रेंज में)।

या फ़ंक्शन को इससे आगे लिखें:

makeTransparent <- function(someColor, alpha=100) scales::alpha(someColor, alpha/100)

grDevices पैकेज में एक फ़ंक्शन adjustcolor है, जो आपके मामले में इस तरह काम करता है:

    adjustcolor( "red", alpha.f = 0.2)






alpha-transparency