Message-ID: <20200707164213.GB15996@posteo.no>
Date: 2020-07-07T16:42:13Z
From: Rasmus Liland
Subject: unique scale color ggplot2
In-Reply-To: <CAJuCY5wA74CMAbYt2AnLMyOTCyN2dZH0U2NLEOhokG7dRNt5QA@mail.gmail.com>
On 2020-07-07 12:44 +0200, Thierry Onkelinx via R-help wrote:
> Op di 7 jul. 2020 om 12:02 schreef Catalin Roibu <catalinroibu at 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