I am trying to plot a barplot, and overlay some plots onto it using a secondary axis. I am able to adjust the secondary axis to be proportional to the values but the line plots still seem be squished at the bottom.
Here is my code and data:
library(ggplot)
library(tidyr)
> dput(dsr1)
structure(list(Site = c("DF", "DF", "DF", "DF", "DR", "DR", "DR",
"DR", "FF", "FF", "FF", "FF", "FR", "FR", "FR", "FR", "MR", "MR",
"MR", "MR"), Gene = c("dsr", "dsr", "dsr", "dsr", "dsr", "dsr",
"dsr", "dsr", "dsr", "dsr", "dsr", "dsr", "dsr", "dsr", "dsr",
"dsr", "dsr", "dsr", "dsr", "dsr"), Var = c("Sep", "Nov", "Dec",
"Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan",
"Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan"), Avg = c(26192.15213,
1060.62995, 5976.49445, 18627.35088, 9230.00425, 8154.795375,
15599.3215, 33674.06525, 5375.773538, 1243.98395, 1368.094813,
18126.26463, 11128.72975, 3512.390263, 15628.89188, 12514.475,
10136.56213, 10330.751, 15907.58675, 21435.79538), Std = c(1971.846094,
80.20201232, 1492.776454, 1716.348126, 1312.541508, 682.2806779,
3751.417264, 1518.661188, 1035.91546, 169.1677183, 68.78619696,
1653.659567, 3832.856982, 218.6107193, 650.6329325, 3516.620678,
2528.207035, 451.3704901, 907.4479828, 550.5151197)), row.names = c(NA,
-20L), class = c("tbl_df", "tbl", "data.frame"))
> dput(srb1)
structure(list(Site = c("DF", "DF", "DF", "DF", "DF", "DF", "DF",
"DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF",
"DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF",
"DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF",
"DF", "DF", "DF", "DF", "DF", "DF", "DF", "DF", "DR", "DR", "DR",
"DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR",
"DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR",
"DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR",
"DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR", "DR",
"DR", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF",
"FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF",
"FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF",
"FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF",
"FF", "FF", "FF", "FF", "FF", "FR", "FR", "FR", "FR", "FR", "FR",
"FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR",
"FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR",
"FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR",
"FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "FR", "MR", "MR",
"MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR",
"MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR",
"MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR",
"MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR", "MR",
"MR", "MR"), SRB = c("A", "A", "A", "A", "B", "B", "B", "B",
"C", "C", "C", "C", "D", "D", "D", "D", "E", "E", "E", "E", "F",
"F", "F", "F", "G", "G", "G", "G", "H", "H", "H", "H", "I", "I",
"I", "I", "J", "J", "J", "J", "K", "K", "K", "K", "L", "L", "L",
"L", "A", "A", "A", "A", "B", "B", "B", "B", "C", "C", "C", "C",
"D", "D", "D", "D", "E", "E", "E", "E", "F", "F", "F", "F", "G",
"G", "G", "G", "H", "H", "H", "H", "I", "I", "I", "I", "J", "J",
"J", "J", "K", "K", "K", "K", "L", "L", "L", "L", "A", "A", "A",
"A", "B", "B", "B", "B", "C", "C", "C", "C", "D", "D", "D", "D",
"E", "E", "E", "E", "F", "F", "F", "F", "G", "G", "G", "G", "H",
"H", "H", "H", "I", "I", "I", "I", "J", "J", "J", "J", "K", "K",
"K", "K", "L", "L", "L", "L", "A", "A", "A", "A", "B", "B", "B",
"B", "C", "C", "C", "C", "D", "D", "D", "D", "E", "E", "E", "E",
"F", "F", "F", "F", "G", "G", "G", "G", "H", "H", "H", "H", "I",
"I", "I", "I", "J", "J", "J", "J", "K", "K", "K", "K", "L", "L",
"L", "L", "A", "A", "A", "A", "B", "B", "B", "B", "C", "C", "C",
"C", "D", "D", "D", "D", "E", "E", "E", "E", "F", "F", "F", "F",
"G", "G", "G", "G", "H", "H", "H", "H", "I", "I", "I", "I", "J",
"J", "J", "J", "K", "K", "K", "K", "L", "L", "L", "L"), Var = c("Sep",
"Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov",
"Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec",
"Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan",
"Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep",
"Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov",
"Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec",
"Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan",
"Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep",
"Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov",
"Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec",
"Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan",
"Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep",
"Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov",
"Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec",
"Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan",
"Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep",
"Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov",
"Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec",
"Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan",
"Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep",
"Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov",
"Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec",
"Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan",
"Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep",
"Nov", "Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov",
"Dec", "Jan", "Sep", "Nov", "Dec", "Jan", "Sep", "Nov", "Dec",
"Jan", "Sep", "Nov", "Dec", "Jan"), Avg = c(0, 0, 0, 0, 0, 0.003854866,
0.061106412, 0.071682456, 0.00059896, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0.098315511, 0, 0.004801973, 0.063737569, 1.964397117,
0.145974324, 0.155585996, 2.021656134, 0.144172778, 0.039715264,
0.072734409, 0.277671026, 0.395869671, 0.094600576, 0.416784381,
0.509686627, 0.002391391, 0, 0, 0.01107881, 0.01776674, 0, 0.010330774,
0.116655538, 0.019222751, 0.048718956, 0.003774214, 0.048769952,
0.000404064, 0, 0, 0, 0, 0, 0, 0, 0.000808129, 0.025281279, 0.000935706,
0.007744674, 0, 0, 0, 0, 0, 0, 0, 0, 0.024454972, 0.026716446,
0.010346329, 0.031761494, 0.176511803, 0.002071508, 0, 0.004252813,
0.022717954, 0.044868941, 0.017135875, 0.02262901, 0.204066738,
0.061230801, 0.07198863, 0.190769924, 0.000673709, 0, 0, 0, 0.019986705,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.013240102, 0.006850463,
0.007235685, 0.014429782, 0.001452608, 0, 0, 0, 0, 0, 0, 0, 0.056095432,
0.00906202, 0.003799885, 0.018233616, 0.120468519, 0.001127625,
0.005593377, 0.007697997, 0.116444276, 0.060955479, 0.027829322,
0.059367186, 0.232145552, 0.02543649, 0.089065429, 0.08453107,
0, 0, 0, 0, 0.015783104, 0, 0, 0.001603001, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0.008758482, 0.005594702, 0.013502405, 0.010478338,
0, 0, 0, 0, 0, 0, 0, 0, 0.009879588, 0.005346856, 0.016387101,
0.012409584, 0.001962154, 0.001734556, 0, 0.007286852, 0.032146728,
0.014142999, 0.047512303, 0.025582156, 0.122754967, 0.019880746,
0.142894055, 0.158862745, 0, 0, 0, 0, 0, 0, 0.000797048, 0, 0,
0, 0, 0, 0, 0.002049933, 0, 0, 0, 0, 0.00742221, 0, 0.007622556,
0.017323055, 0.002210342, 0.00431524, 0, 0, 0, 0, 0, 0, 0, 0,
0.027315991, 0.062928107, 0.014127331, 0.026469388, 0, 0.001349002,
0.087496432, 0.00255964, 0.03077342, 0.054161156, 0.036458083,
0.024667621, 0.166278721, 0.16856285, 0.167405409, 0.163786308,
0, 0, 0, 0, 0, 0.005834094, 0.002711961, 0, 0, 0, 0.009848701,
0), Std = c(0, 0, 0, 0, 0, 0.004489104, 0.101688894, 0.064949287,
0.00119792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.07991923, 0, 0.008036531,
0.10050744, 1.697626013, 0.050273793, 0.192288778, 1.475742817,
0.084535326, 0.021019687, 0.078525424, 0.14633414, 0.44279092,
0.077102705, 0.774390338, 0.259203849, 0.004782782, 0, 0, 0.012875964,
0.025904929, 0, 0.014403465, 0.194281549, 0.013769571, 0.04968971,
0.004797693, 0.019973095, 0.000808129, 0, 0, 0, 0, 0, 0, 0, 0.001616257,
0.006575046, 0.001871412, 0.001771095, 0, 0, 0, 0, 0, 0, 0, 0,
0.016365279, 0.01172175, 0.008458564, 0.00480104, 0.353023607,
0.004143017, 0, 0.005034407, 0.011968923, 0.017255941, 0.016173283,
0.004738345, 0.09921792, 0.015230554, 0.053297221, 0.0894813,
0.001347418, 0, 0, 0, 0.039973411, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0.009959679, 0.011114534, 0.008731848, 0.011138718,
0.002905215, 0, 0, 0, 0, 0, 0, 0, 0.047973853, 0.007723351, 0.005046906,
0.007643438, 0.097174061, 0.002255249, 0.011186755, 0.005347923,
0.043569938, 0.0436422, 0.015534005, 0.039596993, 0.144497391,
0.022316042, 0.051071736, 0.030856551, 0, 0, 0, 0, 0.019935073,
0, 0, 0.003206002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.007767112,
0.007440585, 0.010550983, 0.009268475, 0, 0, 0, 0, 0, 0, 0, 0,
0.00909171, 0.007409357, 0.008755822, 0.014391853, 0.003924308,
0.003469112, 0, 0.006015714, 0.010585435, 0.006256366, 0.042498882,
0.009395162, 0.090393123, 0.011347959, 0.116478044, 0.091113074,
0, 0, 0, 0, 0, 0, 0.001594095, 0, 0, 0, 0, 0, 0, 0.002434431,
0, 0, 0, 0, 0.014844419, 0, 0.008804914, 0.006774488, 0.002575667,
0.005594923, 0, 0, 0, 0, 0, 0, 0, 0, 0.019338184, 0.058467452,
0.007963778, 0.028527808, 0, 0.002698003, 0.174992863, 0.005119279,
0.017470551, 0.032819923, 0.037334218, 0.013764006, 0.122531556,
0.165503776, 0.194704629, 0.085870127, 0, 0, 0, 0, 0, 0.009423796,
0.005423922, 0, 0, 0, 0.019697402, 0)), row.names = c(NA, -240L
), class = c("tbl_df", "tbl", "data.frame"))
###keeping the order of my Var variables
dsr1$Var <- factor(dsr1$Var,levels=unique(dsr1$Var))
srb1$Var <- factor(srb1$Var,levels=unique(srb1$Var))
###bar plot
dsr_plot = ggplot(dsr1, aes(x = Var, y = Avg, ymin = Avg-Std, ymax = Avg+Std, fill = Site)) +
facet_wrap(~Site, ncol = 5) +
geom_bar(colour = "black", stat = "identity", position = "dodge", width = 0.65, alpha = 0.8) +
geom_errorbar(colour = "black", stat = "identity", position = position_dodge(0.65), width = 0.4) +
theme(axis.text.x = element_text(size = 16, angle = 90, vjust = 0.25),
axis.text.y = element_text(size = 16),
panel.spacing.y = unit(1, "lines")) +
scale_y_continuous(expand = c(0,0))
dsr_plot
###adding the line plots
dsr_plot + geom_line(data = srb1, aes(x = Var, y = Avg, colour = SRB, group = SRB), size = 1) +
geom_point(data = srb1, size = 3, aes(colour = SRB)) +
geom_errorbar(data = srb1, aes(ymin = Avg - Std, ymax = Avg + Std, width = 0.25, colour = SRB), size = 0.5) +
scale_y_continuous(sec.axis = sec_axis(trans= ~./1000, name = "SRB (%)")) +
theme(legend.position = "top", legend.justification = "right",
legend.text = element_text(size = 16),
legend.title = element_text(size = 20, face = "bold"),
axis.title.y.right = element_text(margin = margin(l = 15))) + guides(shape = guide_legend(override.aes = list(size = 4)))
As you can see, the line plots seem to be squished down at the bottom even though I've scaled my secondary y-axis down so that it is proportional to the values scale_y_continuous(sec.axis = sec_axis(trans= ~./1000, name = "SRB (%)"))
I came across this post and this post which seems to be having the same issue and tried the solutions there but the plots still look the same even though the secondary y-axis scales changes.
Thanks in advance.
You need to apply the inverse transfrom to the data. So, if you are creating a secondary axis by dividing by 1000, you need to multiply by 1000 when passing y
to aes()
. So you can try this alternative in your geom_line()
and geom_point()
calls with srb1
data.
geom_<XXX>(data=srb1, aes(y=Avg*1000, ...))