最近在学习数据分析,用matplotlit绘制条形图,柱状图老师讲了加标签的方法,但是没有讲横向条形图加数据标签的方法,但是我想到业务场景可能会用到,于是自己写了一个脚本练习一下,用竖向条形图的方法加数据标签,怎么都加不上,百度找到一些解决方法,然后自己改了一下终于解决了这个问题。
重点在这个for循环
b = ax.barh(name, course, color=colors)
for rectin b:
w = rect.get_width()
ax.text(w +1, rect.get_y() + rect.get_height() /2, '%d' %
int(w), ha='left', va='center')
代码部分:
import numpyas np
import matplotlib.pyplotas plt
name = ['Adam', 'Barry', 'Corbin', 'Doe', 'Evans', 'Frans']
course_name = ['math', 'physics', 'biology', 'chemistry']
colors = ['#00429d', '#7f40a2', '#a653a1', '#c76a9f', '#e4849c', '#d0e848']
N =len(name)
rows =2
columns =2
plt.rcParams['font.sans-serif'] = ['SimHei']
# noise = np.random.randint(1, 3, N)
plt.figure(figsize=(15, 10))
grid = plt.GridSpec(rows, columns, wspace=0.25, hspace=0.25)
for iin range(len(course_name)):
# np.random.seed(100)
course = np.random.randint(60, 100, N)
ax = plt.subplot(grid[i])
b = ax.barh(name, course, color=colors)
for rectin b:
w = rect.get_width()
ax.text(w +1, rect.get_y() + rect.get_height() /2, '%d' %
int(w), ha='left', va='center')
plt.xlabel(course_name[i] +" Exam")
plt.xlim(60, 110)
plt.title(course_name[i] +' 的成绩表')
plt.show()

网友评论