Python 如何为matplotlib barplot中的所有条创建图例
我想为我的条形图中的所有条形图创建一个图例。我已经提取了所有条的标签,但不知怎么的,legend()z只为第一条条而不是第二条创建了一条线 我应该如何进行?我在想,我可能还需要手动提取条的颜色,但我不知道。我也希望有一个更简单的方法Python 如何为matplotlib barplot中的所有条创建图例,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,我想为我的条形图中的所有条形图创建一个图例。我已经提取了所有条的标签,但不知怎么的,legend()z只为第一条条而不是第二条创建了一条线 我应该如何进行?我在想,我可能还需要手动提取条的颜色,但我不知道。我也希望有一个更简单的方法 df.Completeness.value_counts().plot(kind='bar') _, labels = plt.xticks() label_names = list(map(lambda p: p.get_text(), labels)) prin
df.Completeness.value_counts().plot(kind='bar')
_, labels = plt.xticks()
label_names = list(map(lambda p: p.get_text(), labels))
print(label_names)
plt.legend(label_names)
手动设置颜色并使用mpaches
import matplotlib.patches as mpatches
df.Completeness.value_counts().plot(kind='bar')
complete = mpatches.Patch(color='red', label='Complete')
partial = mpatches.Patch(color='blue', label='Partial')
plt.legend(handles=[complete, partial])
如果运行这个虚拟示例,您是否得到了所需的布局
import pandas as pd
import numpy as np
df=pd.DataFrame({'A':np.random.rand(2)-1,'B':np.random.rand(2)},index=['val1','val2'] )
ax = df.plot(kind='bar', color=['r','b'])
这似乎不是一个传奇?当标签不足以说明数据显示的内容时,将使用图例。。。例如,在本图中,但在您的情况下,x轴上的记号是可以的。也许你想在绘图中添加文本:
plt.text(x,y,“text”,fontsize=int)
@Hielke Walinga你能分享样本数据吗?@min2bro它的tsv。你没有回答我的问题。你的话完全正确,但这不是我想要的。另外,legend()
只选择第一个条的颜色也没有意义。我基本上需要一些方法来提取所有条的颜色,并手动将这些颜色传递给legend()
函数。