[R] ggplot adjust two y-axis

sibyiie@stoeckii m@iii@g oii gmx@ch sibyiie@stoeckii m@iii@g oii gmx@ch
Fri Nov 24 17:27:17 CET 2023


Dear Charles-Edouard

Thanks a lot. Yes indeed barplot sounds excellent.

Unfortunately, the scale of the smaller axis is fixed, even If I am able to
draw to axes. The idea is to expand the scale to the scale to the second
axis for comparison.
F1 <- as.table(matrix(c(50,11,6,17,16,3,1,2237,611,403,240,280,0,0), 2,7))  
barplot(F1, beside = TRUE, col = c("blue", "grey")) 
axis(2, at=c(0,10,20,30,40,50,60, labels=c(0,10,20,30,40,50,60)))
axis(4, at = c(0,500,1000,1500,2000,2500), labels =
c(0,500,1000,1500,2000,2500))

Kind regards
Sibylle 


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

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




-------------- next part --------------
A non-text attachment was scrubbed...
Name: plot2.pdf
Type: application/pdf
Size: 4386 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20231124/f1a8bab7/attachment.pdf>


More information about the R-help mailing list