将带有次要Y轴的熊猫条形图的图例放在条形图的前面

詹姆斯·凯奇:

我有一个带有辅助y轴的pandas DataFrame,我需要一个条形图,条形图的前面是图例。当前,图例前面有一组标尺。如果可能的话,我还要将图例放在左下角。任何想法表示赞赏!

我试图设置legend = false并添加一个自定义图例,但是它具有相同的问题。我尝试对列进行重新排序,但是无法在图表上为此清除空间。

import pandas as pd
import matplotlib.pyplot as plt

df_y = pd.DataFrame([['jade',12,800],['lime',12,801],['leaf',12,802], 
       ['puke',12,800]], columns=['Territory','Cuisines','Restaurants'])
df_y.set_index('Territory', inplace=True)

plt.figure()
ax=df_y.plot(kind='bar', secondary_y=['Restaurants'])
ax.set_ylabel('Cuisines')
ax.right_ax.set_ylabel('Restaurants')
plt.show()

一组条形出现在图例的后面,而一组出现在图例的前面。下面的链接转到显示问题的图像。谢谢!

链接到图片

ALollz:

您可以自己创建图例。

与列一起压缩时,请使用颜色循环仪获得正确的颜色。确保legend=False在条形图中设置loc=3是左下角。

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
df_y.plot(kind='bar', secondary_y=['Restaurants'], legend=False, ax=ax)
ax.set_ylabel('Cuisines')
ax.right_ax.set_ylabel('Restaurants')

L = [mpatches.Patch(color=c, label=col) 
     for col,c in zip(df_y.columns, plt.rcParams['axes.prop_cycle'].by_key()['color'])]

plt.legend(handles=L, loc=3)
plt.show()

在此处输入图片说明

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章