[R] ggplot2 fill problem in colour shading

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Sun Aug 11 18:57:22 CEST 2019


Hello,

You must put the NA in scale_fill_manual. Like this:

ggplot(data = ddf, aes(x = x, y = y)) +
   geom_area(aes(fill = fill)) +
   geom_line() +
   scale_fill_manual(values = c(NA, "red"))


Note also that 'fill' is a factor, were it numeric you would need fill = 
factor(fill).


ddf2 <- data.frame(x,y,fill = as.integer(fill == "red"))

ggplot(data = ddf2, aes(x = x, y = y)) +
   geom_area(aes(fill = fill)) +
   geom_line() +
   scale_fill_manual(values = c(NA, "red"))
#Error: Continuous value supplied to discrete scale


Just change to fill = factor(fill) and the graph is exactly the same.
Which leads me to propose an easier way of creating the vector 'fill', 
in the first place.

fill <- as.integer((5 < x) & (x < 7.5))

Will give the same result, coerce to factor if you like.


Hope this helps,

Rui Barradas

Às 17:13 de 11/08/19, Troels Ring escreveu:
> Dear friends - I have 2  problems with ggplot2
> 
> Here is the code for illustration
> 
>   
> 
> x <- seq(1,10,length=10000)
> 
> y <- x^2
> 
> fill <- rep(0,length(x))
> 
> fill[(5<x)&(x<7.5)] <- "red"
> 
> ddf <- data.frame(x,y,fill)
> 
> ggplot(data=ddf,aes(x=x,y=y)) + geom_area(aes(fill=fill)) + geom_line()
> 
>   
> 
> First the embarrassing one: I would really like no fill except from x from 5
> to 7.5 or transparency so the background is still visible. Have tried NULL
> and NA with no effect.
> 
> The other thing is that it appears that above the blue area some of the
> other color spills true - reddish on my system.
> 
>   
> 
> Windows 10
> 
> R version 3.6.1
> 
>   
> 
> All best wishes
> 
> Troels Ring
> 
> Aalborg, Denmark
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list