python - 使用正确的标签 python 绘制图例

标签 python pandas

我有一个数据框,我想绘制一个带有“A”、“B”和“C”的图例,但是,我只生成了一个带有“A”标签的图例:

data = {'A1_mean': [0.457, 1],
         'A2_median': [0.391,1],
         'A3_range': [0.645,1],
         'A4_std': [0.111,1],
         'B1_mean': [0.132,3],
         'B2_median': [0.10,3],
         'B3_range': [0.244,3],
         'B4_std': [0.297,3],
         'C1_mean': [0.286,2],
         'C2_median': [0.231,2],
         'C3_range': [0.554,2],
         'C4_std': [0.147,2]}
df = pd.DataFrame(data).T
color = {1:'red',2:'green',3:'blue'}
ax=df[0].plot(kind='bar',color=df[1].map(color).tolist())
ax.legend(['A','B','C'])

给出:

enter image description here

我怎样才能改变这个,以便我有一个带有 A B 和 C 的图例,具有适当的颜色(A:红色,B:蓝色,C:绿色)?

最佳答案

根据 Legend guide您可以将代理艺术家放在图例中:

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

data = {'A1_mean': [0.457, 1],
         'A2_median': [0.391,1],
         'A3_range': [0.645,1],
         'A4_std': [0.111,1],
         'B1_mean': [0.132,3],
         'B2_median': [0.10,3],
         'B3_range': [0.244,3],
         'B4_std': [0.297,3],
         'C1_mean': [0.286,2],
         'C2_median': [0.231,2],
         'C3_range': [0.554,2],
         'C4_std': [0.147,2]}
df = pd.DataFrame(data).T
color = {1:'red',2:'green',3:'blue'}
labels = ['A','C','B']
fig, ax = plt.subplots()
df[0].plot(ax=ax, kind='bar', color=df[1].map(color))

handles = []
for i, c in color.items():
    handles.append(mpatches.Patch(color=c, label=labels[i-1]))
plt.legend(handles=handles, loc='best')
# auto-rotate xtick labels
fig.autofmt_xdate()
plt.show()

enter image description here

关于python - 使用正确的标签 python 绘制图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35413523/

相关文章:

python - 如果数据框中不存在列,则返回空列

python - 使用 linregress 参数中使用的查询来迭代分组

python - 如何监控/记录 sqlalchemy 范围内的 session ?

python - 重命名类主体中的方法

python - POST 方法执行正确的发布,然后重新呈现整个页面

python - 如何将 pandas 中的列拆分为具有特定分隔符位置的多列?

python - 从 pandas 数据框中的标题中删除常用词

python - 如何使用 easy_install 安装 Pandas ?

python - 10 分钟内的 sample 分箱

python - 具有对角矩阵的点积,无需创建完整矩阵