Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建条形图/柱状图,每个离散值具有条形图?_Python_Matplotlib_Pandas - Fatal编程技术网

Python 如何创建条形图/柱状图,每个离散值具有条形图?

Python 如何创建条形图/柱状图,每个离散值具有条形图?,python,matplotlib,pandas,Python,Matplotlib,Pandas,我试图创建一个直方图,显示离散星级(1-5)中每个值的评级量。 每个值应有一个条形,在x轴上,每个条形下方(居中)仅显示[1,2,3,4,5]数字 我尝试将存储箱的数量设置为5或其范围设置为0-7,但这会创建跨值的条形图(如提供的图像所示) 这是我尝试过的代码(pandas和numpy): 及 您可以使用绘图(kind='bar')方法: stars = Series(randint(1, 6, size=100)) vc = stars.value_counts().sort_index()

我试图创建一个直方图,显示离散星级(1-5)中每个值的评级量。 每个值应有一个条形,在x轴上,每个条形下方(居中)仅显示[1,2,3,4,5]数字

我尝试将存储箱的数量设置为5或其范围设置为0-7,但这会创建跨值的条形图(如提供的图像所示)

这是我尝试过的代码(pandas和numpy):

您可以使用
绘图(kind='bar')
方法:

stars = Series(randint(1, 6, size=100))
vc = stars.value_counts().sort_index()
ax = vc.plot(kind='bar')
fig = ax.get_figure()
fig.autofmt_xdate()
要获得:

编辑#1:以比例显示它们,只需除以
总和

vc /= float(vc.sum())
assert vc.sum() == 1
要获得:

编辑#2:将其显示为百分比除以上述总和,并使用format spec mini语言格式化y轴刻度标签

new_labels = ['{0:.0%}'.format(float(x.get_text())) for x in ax.get_yticklabels()]
ax.set_yticklabels(new_labels)
要获得:


谢谢,太好了!我实际上是从总体数据中以百分比的形式显示金额,您将如何使用建议的方法来实现这一点?
vc /= float(vc.sum())
assert vc.sum() == 1
new_labels = ['{0:.0%}'.format(float(x.get_text())) for x in ax.get_yticklabels()]
ax.set_yticklabels(new_labels)