Matplotlib 如何在直方图的x轴上将变量名称显示为标签?

Matplotlib 如何在直方图的x轴上将变量名称显示为标签?,matplotlib,Matplotlib,我在绘制项目结果的柱状图(3个变量)时遇到问题。结果显示不符合要求 def plot(): kwargs = dict(alpha=0.9, bins=100) plt.hist(Accuracy_of_NB, **kwargs, color='g', label='NB') plt.hist(Accuracy_of_SVM, **kwargs, color='b', label='SVM') plt.hist(Accuracy_of_MaxEnt, **kwar

我在绘制项目结果的柱状图(3个变量)时遇到问题。结果显示不符合要求

def plot():
    kwargs = dict(alpha=0.9, bins=100)
    plt.hist(Accuracy_of_NB, **kwargs, color='g', label='NB')
    plt.hist(Accuracy_of_SVM, **kwargs, color='b', label='SVM')
    plt.hist(Accuracy_of_MaxEnt, **kwargs, color='r', label='MaxEnt')
    plt.gca().set(title='Show Plotting', xlabel='Accuracy')
    plt.xlim(0,1)
    plt.legend()


我希望变量名显示在x轴下方。在y轴上,这些值被清晰地表示出来。

因为只有三个变量可以显示,所以直方图并不足够。柱状图获取许多(百分之一、数千或更多)值,将它们放入存储箱中,并显示每个存储箱中的值数量

A似乎更合适。 这是带有数据的条形图的代码。为了更好的可读性,这些条带上了注释。y轴上的附加记号也可能有用

从matplotlib导入pyplot作为plt
将matplotlib.ticker导入为plticker
_NB的精度=0.874
_-SVM的精度_=0.871
最大值的精度=0.889
plt.bar(x=['NB','SVM','MaxEnt'],
高度=[高度的精度、支持向量机的精度、最大值的精度],
颜色=['limegreen'、'dodgerblue'、'crimson'])
ax=plt.gca()
ax.set(title='Comparing accuracity',xlabel='Method',ylabel='accuracity')
plt.ylim(0,1)
ax.yaxis.set_major_locator(plticker.MultipleLocator(base=0.1))#设置y轴上的刻度
ax.yaxis.set_minor_locator(plticker.MultipleLocator(base=0.02))#在y轴上设置次刻度
#注释以百分比形式显示值的条形图
对于ax.patches中的p:
ax.annotate(f'\n{p.get_height()*100:.1f}%',
(p.get_x()+p.get_width()/2,p.get_height()),ha='center',va='top',color='white',size=18)
plt.紧_布局()
plt.show()