Hi,
Just find a scaling factor that would make the two sets of data comparable.
Here I divided the second row by 5 and did the same for the second axis.
Charles-?douard
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))
-----Message d'origine-----
De?: sibylle.stoeckli at gmx.ch <sibylle.stoeckli at gmx.ch>
Envoy??: 24 novembre 2023 11:27
??: 'Charles-?douard Gigu?re' <ce.giguere at gmail.com>; r-help at
r-project.org
Objet?: RE: [R] ggplot adjust two y-axis
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 at gmail.com>
Sent: Friday, November 24, 2023 3:57 PM
To: sibylle.stoeckli at gmx.ch; r-help at 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 at gmx.ch <sibylle.stoeckli at gmx.ch> Envoy??: 24
novembre
2023 09:27 ??: 'Charles-?douard Gigu?re' <ce.giguere at
gmail.com>;
r-help at 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 at gmail.com>
Sent: Friday, November 24, 2023 3:14 PM
To: sibylle.stoeckli at gmx.ch; r-help at 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 at gmail.com> Envoy??: 24
novembre
2023 09:11 ??: sibylle.stoeckli at gmx.ch; r-help at 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 at r-project.org> De la part de
sibylle.stoeckli at gmx.ch Envoy??: 24 novembre 2023 05:52 ??:
r-help at 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