我可以在不同的轴上共享多个大熊猫的传说吗?

扎普努克

我想使用Pandas和Matplotlib在不同的轴上绘制多个堆叠的条形图

以下最小示例的问题在于,它为每个轴创建了一个图例。

import pandas as pd
import matplotlib.pyplot as plt

d1 = {'a': 1, 'b': 10}
d2 = {'a': 5, 'b': 5}
df = pd.DataFrame([d1,d2])
d1 = {'a': 9, 'b': 3}
d2 = {'a': 5, 'b': 4}
df2 = pd.DataFrame([d1,d2])

fig, axes = plt.subplots(2,1,sharex=True)
df.plot.barh(stacked=True,ax=axes[0])
axes[0].set_ylabel('DataFrame 1')
df2.plot.barh(stacked=True,ax=axes[1])
axes[1].set_ylabel('DataFrame 2')

在此处输入图片说明

有没有一种方法可以共享所有轴的图例?图例可以移到绘图区域之外吗?腿可能很大。

广晃

是的,如果所有图例都相同,则可以抓住其中的一个并将其放在plt

# grab the legend handles and lables
h, l = axes[0].get_legend_handles_labels()

# remove all the subplot legends
for ax in axes: ax.get_legend().remove()

# add one legend on `plt`
plt.legend(h,l, loc=(1.05, 0.8))

输出:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章