On 2020-07-07 12:44 +0200, Thierry Onkelinx via R-help wrote:
> Op di 7 jul. 2020 om 12:02 schreef Catalin Roibu <catalinro...@gmail.com>:
> > 
> > Dear R users,
> >
> > I want to create a plot for multiple 
> > sites and to keep the same color 
> > range scale (the correlation values 
> > range from -0.5 to 0.7 for all data, 
> > but I have sites with different min 
> > and max).
> >
> > I used this code:
> > cols<-c("#0288D1", "#039BE5", "#03A9F4","#29B6F6", "#4FC3F7", "#FFCDD2",
> > "#E57373", "#F44336", "#E53935", "#D32F2F", "#C62828", "#B71C1C")
> > zCuts <-seq(-.5, 0.6, by = 0.1)
> > p<-ggplot(df1, aes(x=as.factor(spei), y=as.factor(month), fill = cut(cor,
> > zCuts))) +
> >   geom_tile() +
> >   scale_fill_manual(values=cols)
> >
> > but for each site the scale color is different.
> >
> 
> Dear Catalin,
> 
> use scale_fill_gradient() and set fixed limits
> 
> ggplot(df1, aes(x=as.factor(spei), y=as.factor(month), fill = cut(cor,
> zCuts))) +
>   geom_tile() +
>   scale_fill_gradient(limits = c(-0.7, 0.7))

Hmm ... what might df1 have looked like 
... creating a df with columns spei, 
month, cor, and zCuts containing 1:5 
doesn't do the trick ... 

        df1 <-
          data.frame(
            spei=1:5,
            month=1:5,
            cor=1:5,
            zCuts=1:5
          )
        cols <-
          c("#0288D1", "#039BE5",
            "#03A9F4","#29B6F6", "#4FC3F7",
            "#FFCDD2", "#E57373", "#F44336",
            "#E53935", "#D32F2F", "#C62828",
            "#B71C1C")
        zCuts <- seq(-.5, 0.6, by=0.1)
        filename <- "/tmp/catalin1.png"
        width <- 800
        height <- 600
        res <- 150
        png(filename=filename, width=width, height=height, res=res)
        mapping <- ggplot2::aes(
          x = as.factor(spei),
          y = as.factor(month),
          fill = cut(cor, zCuts)
        )
        p <- ggplot2::ggplot(df1, mapping=mapping) +
           ggplot2::geom_tile() +
           ggplot2::scale_fill_gradient(limits = c(-0.7, 0.7))
        #   ggplot2::scale_fill_manual(values=cols)
        p
        dev.off()

... which only produces the error

        Error: Discrete value supplied to continuous scale
        Execution halted

V

r

______________________________________________
R-help@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.

Reply via email to