Ho avuto questo alcune volte, quindi ecco: sto facendo alcuni grafici che tengono curve con le stime di un parametro dato un parametro di sintonia.Equivalente trasparente di un dato colore
In genere, dispongo anche di SD per ciascun valore stimato, pertanto è possibile visualizzare barre di errore attorno a ciascuna di esse.
Tuttavia, non mi piacciono le barre di errore, e preferirei una versione livellata di esso. Questo non è di per sé un problema (es. So come farlo). Tuttavia, la mia trama contiene molte di queste curve simili, ognuna con il proprio colore. Quindi vorrei aggiungere "l'errorregion levigata" a ciascuna curva in un colore che corrisponda al colore della curva stessa. Certo, mi piacerebbe farlo in modo un po 'trasparente, così posso ancora vedere le altre curve attraverso la' regione di errore '.
Quindi, la mia domanda è: dato un colore (specificato da un numero, un nome o un valore rgb --- nota che i primi due pongono un problema in più, ma questo si verifica piuttosto spesso, come le funzioni di tracciamento di base prendi questi come valori di colore validi), come posso trovare trovare il colore corrispondente che ha lo stesso rgb ma un livello alfa diverso (dato) (trasparenza). Vorrei una funzione come:
makeTransparent<-function(someColor, alpha=100)
{
newColor<-someColor + alpha #I wish
return(newColor)
}
Questo dovrebbe funzionare per cose come:
makeTransparent(2)
makeTransparent("red")
makeTransparent(rgb(0,0,1))
Edit Odio quando mi manca qualcosa di ovvio, ma @themel mi ha segnalato ad esso (thx di nuovo). Ecco una soluzione completa (nota: opere vettoriale, in modo da poter passare più di un colore, un solo alfa è supportata in questo momento però):
#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)})
}
'ggplot2 :: alfa()' forse? – baptiste
C'è anche 'alpha' in' scale ', forse sono correlati. Quella è bilancia ha un'interfaccia davvero bella. È abbastanza flessibile nei suoi input.Penso che qualsiasi espressione della forma 'plot (data, col = colors)' possa essere sostituita con 'plot (data, col = alpha (colors, 0.5))' per ottenere il 50% di trasparenza. Questo funziona anche se 'colors' è semplicemente un vettore di numeri interi che selezionano un colore dalla tavolozza standard. –
in qualche modo collegato (secondo Google in ogni caso) e che ho trovato molto utile: https://gist.github.com/mages/5339689/raw/576263b8f0550125b61f4ddba127f5aa00fa2014/add.alpha.R – PatrickT