[R] ggplot adjust two y-axis

Charles-Édouard Giguère ce@g|guere @end|ng |rom gm@||@com
Fri Nov 24 15:57:05 CET 2023


Hi,
 I don't know the axis mecanism well enough in ggplot but using the original
barplot function you can add an axis on the right using the axis function.

Here is an example: 

test <- as.table(matrix(c(2,10,3,11), 2,2))
barplot(test, beside = TRUE, col = scales::brewer_pal(palette = 1)(2))
axis(4, at = c(0, 5,  10), labels = c(0,50,100))


-----Message d'origine-----
De : sibylle.stoeckli using gmx.ch <sibylle.stoeckli using gmx.ch> 
Envoyé : 24 novembre 2023 09:27
À : 'Charles-Édouard Giguère' <ce.giguere using gmail.com>; r-help using r-project.org
Objet : RE: [R] ggplot adjust two y-axis

Dear Charles-Edouard

Thanks a lot.
So no way in R to just simply have one ggplot with to axis as in Excel
(attachment)?

Kind regards
Sibylle

-----Original Message-----
From: Charles-Édouard Giguère <ce.giguere using gmail.com>
Sent: Friday, November 24, 2023 3:14 PM
To: sibylle.stoeckli using gmx.ch; r-help using r-project.org
Subject: RE: [R] ggplot adjust two y-axis

You could also use more simply facet_wrap(~ Studien_Flaeche). 
Charles-Édouard

-----Message d'origine-----
De : Charles-Édouard Giguère <ce.giguere using gmail.com> Envoyé : 24 novembre
2023 09:11 À : sibylle.stoeckli using gmx.ch; r-help using r-project.org Objet : RE: [R]
ggplot adjust two y-axis

Hi Sibylle,
For that kind of data with two different scales, I generally use two graphs
that I name gg1 and gg2 and join them using gridExtra::grid.arrange(gg1,
gg2). This way, the red part of your graph is easier to interpret. 
Have a nice day,
Charles-Édouard 

-----Message d'origine-----
De : R-help <r-help-bounces using r-project.org> De la part de
sibylle.stoeckli using gmx.ch Envoyé : 24 novembre 2023 05:52 À :
r-help using r-project.org Objet : [R] ggplot adjust two y-axis

Dear R-users

Is it possible to adjust two y-axis in a ggplot differently?
- First y axis (0-60)
- Second y axis (0-2500)


### Figure 1
ggplot(Fig1,aes(BFF,Wert,fill=Studien_Flaeche))+
  geom_bar(stat="identity",position='dodge')+
  scale_y_continuous(name="First Axis", sec.axis=sec_axis(trans=~.*50,
name="Second Axis"))+
  scale_fill_brewer(palette="Set1")

Thanks a lot
Sibylle



More information about the R-help mailing list