2015-02-26 18 views
5

Ho un ggplot che traccia 4 serie diverse come linee. Vorrei impostare ogni riga su una trasparenza diversa. Come faccio a fare questo? Più specificamente, voglio che due linee siano trasparenti e che due righe siano opache. Sono consapevole di come impostare tutte le linee con lo stesso trasparenza con alfa, ma ora come impostare la trasparenza singolarmente.Imposta linee su diversi trasparenti

Ecco dati di esempio e il codice:

mydata = data.frame(rep(1:4,4),runif(16),c(rep("A",4),rep("B",4),rep("C",4),rep("D",4))) 
colnames(mydata) = c("month","price","series") 
library(ggplot2) 
ggplot(mydata,aes(month,price,color=series))+geom_line() 
+1

Come aggiungere dati di input di esempio per rendere questo problema [riproducibile] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) e dirci quale delle linee per cui vuoi regolare l'opacità. Puoi usare 'alpha =' per regolare la trasparenza di determinati elementi. – MrFlick

risposta

6

diretto alpha ad una variabile estetica e utilizzare scale_alpha_manual

ggplot(mydata,aes(month,price,color=series, alpha=series)) + 
geom_line() + 
scale_alpha_manual(values = c(0.1, 0.1, 1, 1)) 

L'ordine di c(0.1, 0.1, 1, 1) sarà ovviamente dipendono da quali linee si desidera opaco.

+0

scale_color_manual sembra essere così! – user3709306

Problemi correlati