Pandas条形图中的自定义图例(matplotlib)

时间:2015-04-15 01:14:25

标签: python pandas matplotlib plot

我已经创建了一个带有Pandas的条形图,其中我展示了一些国家的数量变化,并根据每个国家的大陆设置了条形颜色。我使用以下代码绘制图形。该代码基于this question的第二个回复:

s = pd.Series(
     listOfQuantities,
     listOfCountiesNames
)

''' Assign color to each country based on the continent '''
colormapping = {'AF':'k','AS':'r','EU':'g','OC':'r','NA':'b','SA':'y'}
colorstring = ""
for country in listOfCountiesNames:
    continent = countryToContinent[country]
    colorstring += colormapping[continent]


pd.Series.plot(
    s,
    kind='bar',
    color=colorstring,
    grid=False,
)

我想创建一个类似于我在附加图像中显示的图例(图例不是由python生成的,我是手动添加的)。是否可以用熊猫绘制这样的自定义图例,还是可以实现与其他图形库类似的东西?此外,我也很欣赏有关此类数据的替代绘图类型的建议。

enter image description here

1 个答案:

答案 0 :(得分:18)

所以在你的系列剧情之后你可以添加这个

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

NA = mpatches.Patch(color='blue', label='North America')
EU = mpatches.Patch(color='green', label='Europe')
AP = mpatches.Patch(color='red', label='Asia/Pacific')
SA = mpatches.Patch(color='yellow', label='South America')
plt.legend(handles=[NA,EU,AP,SA], loc=2)

plt.show()