Следующее даст вам то, что вы хотите:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)
ax.boxplot([df1['Y'], df2['Y']], positions=[1, 2])
ax.set_xticklabels(['W', 'X'])
ax.set_ylabel('Y')
Это дало мне график ниже (я думаю, что вы к чему стремитесь): 