绘制图形并使用 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)
我正在使用 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)