import matplotlib.pyplot as plt
df = pd.DataFrame({'Percent': [0.05, 0.03, 0.01]}, index=['Inconformity', 'OutofVision', 'None'])
# df.plot.bar()
# plt.show()
import numpy as np
plt.figure(figsize=(8,6))
#设置x轴柱子的个数
x=np.arange(len(df.index)) #课程品类数量已知为14,也可以用len(ppv3.index)
#设置y轴的数值,需将numbers列的数据先转化为数列,再转化为矩阵格式
y=np.array(list(df['Percent']))
xticks1=list(df.index) #构造不同课程类目的数列
#画出柱状图['grey','gold','darkviolet','turquoise','r','g','b', 'c', 'm', 'y',
#'k','darkorange','lightgreen','plum', 'tan',
#'khaki', 'pink', 'skyblue','lawngreen','salmon']
plt.bar(x,y,width =0.2, align='center', color=['g','b', 'c'],alpha=0.6)
# y[0] = 0.97
# y[1] = 0.94
# y[2] = 0.7
# plt.bar(x,y,width =0.2, align='center', color=['skyblue','skyblue','lawngreen'],alpha=0.6)
plt.ylim((0, 1))
#设置x轴的刻度,将构建的xticks代入,同时由于课程类目文字较多,在一块会比较拥挤和重叠,因此设置字体和对齐方式
plt.xticks(x,xticks1,size='small',rotation=30)
#x、y轴标签与图形标题
plt.xlabel('Item')
plt.ylabel('百分比')
# plt.title('AI Process Acc')
#设置数字标签
for a,b in zip(x,y):
plt.text(a, b+0.05, '%.2f' % b, ha='center', va= 'bottom',fontsize=16)
#设置y轴的范围
ax = plt.gca()
#设置上边和右边无边框
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
plt.ylim(0, 1)
plt.show()
python绘制柱子状图
最新推荐文章于 2025-04-17 17:18:09 发布