[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