I am plotting the same data once as geom_point() and once as geom_boxplot(), but the width of my boxplots seems to be off. The largest x is at 292, but the corresponding box is smaller than 285. How can i get this to the correct size?
Here is a minimal example of my data:
x = data.frame(cluster = c("c1","c2","c3","c4","c5","c6"),
elements = c(292,277,170,160,153,141),
divergence = c(0.08344564,0.12130600,0.05564219,0.12826086,0.05386341,0.09620389))
x.160 = x[x$elements >= 160,]
x.160$Size = "160+"
x.60 = x[x$elements >= 60 & x$elements < 160,]
x.60$Size = "60-160"
binnedX = rbind(x.60,x.160)
p1a = ggplot(data = binnedX, aes(x = elements, y = divergence, group = Size))+
geom_hline(yintercept = mean(binnedX$divergence), color = "black", linetype=2)+
geom_point(aes(color = Size))+
scale_x_continuous(breaks = c(seq(0,300,15))) +
scale_y_continuous(breaks = seq(0.00,0.25,0.05))+
scale_color_brewer(palette = "Spectral") +
ggtitle("element sequence divergence by cluster [clustalO, 100bp]") +
labs(x="Elements per cluster", y="Divergence")+
theme_linedraw(base_size = 18)+
theme(plot.title = element_text(hjust = 0.5),
axis.title.x = element_text(margin = margin(15,15,15,15,"pt")),
axis.title.y = element_text(margin = margin(15,15,15,15,"pt")))
p2a = ggplot(data = binnedX, aes(x = elements, y = divergence, group = Size))+
geom_hline(yintercept = mean(binnedX$divergence), color = "Red", linetype=2)+
geom_boxplot(aes(fill = Size)) +
scale_x_continuous(breaks = c(seq(0,300,15)))+
scale_y_continuous(breaks = seq(0.00,0.25,0.05))+
scale_fill_brewer(palette = "Spectral") +
labs(x="Elements per cluster", y="Divergence")+
theme_linedraw(base_size = 18)+
theme(plot.title = element_text(hjust = 0.5),
axis.title.x = element_text(margin = margin(15,15,15,15,"pt")),
axis.title.y = element_text(margin = margin(15,15,15,15,"pt")),
axis.text.x = element_text(angle=0))
multiplot(p1a,p2a)