绘制图形并使用 seaborn 添加 twinx()

Plotting graph and adding twinx() with seaborn

我正在使用 seaborn 绘制图表,代码是:

fig, ax = plt.subplots(figsize=(20, 10))
ax2 = ax.twinx()

sns.barplot(x="dt_mvtc", y="qtde_t0",
         data=df_grafico_merge.query('t0_def_qtt==1'),color='blue',ax=ax)

sns.lineplot(x="dt_mvtc",y='qtde_t12', hue='t12_def_qtt', style='t12_def_qtt',
         data=df_grafico_merge.query('t0_def_qtt==1'),markers= True, color='orange', ax=ax2)

plt.xlabel("Data")
plt.ylabel("Quantidade")
plt.title('Qtde de registros por data e t0=1')
plt.xticks(rotation=90)

for axis in [ax.yaxis]:
    formatter = ScalarFormatter()
    formatter.set_scientific(True)
    axis.set_major_formatter(formatter)

plt.show()

输出为:

为什么x轴是这样的?由于我在两者中都使用 x=dt_mvtc,为什么它们会混合? 只是为了比较,当我评论 ax2 = ax.twinx() 行时,轴输出正确(即日期旋转 90 度且可读),所以我的问题是使用 twinx(),但我不知道它在哪里错误的。有帮助吗?

plt.xticks 仅使用调用的最后一个子图轴。要获得旋转的 xticks 添加:

for ax_ in fig.axes:
    plt.sca(ax_)
    plt.xticks(rotation=90)