2017-04-11 2 views
0

Ich möchte Transparenz zu einem RasterGrob-Objekt hinzufügen, das als ggplot-Hintergrund verwendet wird.R - Transparenz zum Rastergrob-Hintergrund eines ggplot hinzufügen

Hier ist mein Code

library(ggplot2) 
library(grid) 
library(ggthemes) 

reds <- c("brown", "red","orange","green","orange","red","brown","grey") 
g <- rasterGrob(reds, width = unit(1, "npc"), height = unit(1,"npc"),interpolate = TRUE) 
p <- ggplot(data = economics, aes(x = date, y = unemploy)) + 
    annotation_custom(g, xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf)+ 
    geom_line(alpha=1, color = "white", size = 0.5) + 
    xlab("Years") + ylab("Unemployed [thousands]") + 
    theme_base() + 
    theme(panel.background=element_blank(), 
     plot.background=element_blank(),   
     line = element_line(colour="white")) + 
    theme() 

grid.newpage() 

print(p, newpage = FALSE) 

Ich konnte nicht ein Alpha im rastergrob hinzufügen, weder in annotation_custom. Ich habe eine Weile gesucht.

+0

Haben Sie versucht, numerische Werte zu verwenden? Z.B. Anstelle von "rot" verwende "# F5262688" – G5W

+0

Nun ja, ich habe die Funktion "adjustcolor" gefunden, die alle Farben meiner Vektoren in einem transparenten Äquivalent transformieren kann. Vielen Dank ! – jakzr

+0

Vielleicht könnten Sie eine Antwort auf Ihre eigene Frage schreiben, so dass die Leute wissen, dass sie beantwortet wurde. – G5W

Antwort

0

scales::alpha() ist eine Option nimmt ,

grid.newpage() 
grid.text("background") 

reds <- c("brown", "red","orange","green","orange","red","brown","grey") 
grid.raster(scales::alpha(reds, 0.5), width = unit(1, "npc"), height = unit(1,"npc"),interpolate = TRUE) 
0

finde ich einen möglichen Ausweg, es zu tun ist, um die Funktion AdjustColor() zu verwenden, die die Parameter der Transparenz „alpha“ Und die Liste der Farben und gibt eine Liste von transparenten Farben