I am plotting multiple boxplots along two different axes. My code looks like:
fig, (ax1, ax2) = plt.subplots(2, sharex=True, sharey=False)
data_1 = [array1, array2, array3]
ax1.boxplot(data_1, whis=[5,95], showfliers=True)
data_2 = [array4, array5]
ax2.boxplot(data_2, whis=[5,95], showfliers=True)
ax2.set_xlim(0,4)
This produces a plot (substituting in my actual data) that looks like:
However, I would like the lower plot (on ax2) to shift to the right along the x-axis by one unit. That is, I would like to have the 2 lower boxplots plot at x=2 and x=3, such that they line up with the 2nd and 3rd upper boxplots. I would like to keep the xlabels the same and consistent for all x-axes.
Any ideas?
This should work for your example code. However this solution bypasses the
sharex
aligmentIn my opinion, the axis labeling when using box plots and
sharex
is a little unintuitive.