我有一个带有辅助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()
在图例后面出现一组条形,在图例前面出现一组条形。下面的链接转到显示问题的图像。谢谢!
答案 0 :(得分:3)
您可以自己创建图例。
使用颜色循环器在压缩列时可以使颜色正确。确保在条形图中设置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()