数据可视化:matplotlib绘制 成绩条形图
文本:
XiaoBai,90,80
XiaoMin,80,89
ZhangSan,75,78
LiSi,89,98
WangWu,67,89
代码:
import numpy as np
import matplotlib.pyplot as plt
import re
#提取文本文字方式一:
#score_Y,score_S = np.loadtxt(“G:\python\程序\Visual\ShuJv_1”, delimiter=",", skiprows=0, usecols=(1,2), unpack=True)
#提取文本文字方式二:
open = open(“G:\python\程序\Visual\ShuJv_1”, “r”)
text = open.read()
names = re.findall(r’(.?),…,’, text)
score_Y = re.findall(r’,(.?),’, text)
score_S = re.findall(r’\d+,(\d+)’, text)
#正则提取的是字符串,将字符串数组转换成整型数组
score_Y = list(map(int, score_Y))
score_S = list(map(int, score_S))
plt.figure()
plt.suptitle(“ShiZhan_Score”)
#视图美化
plt.style.use(“ggplot”)
x = np.arange(5)
width_x = 0.3
#绘制条形图
plt.bar(x, height=score_Y, width=width_x)
plt.bar(x + width_x, height=score_S, width=width_x)
#创建图例 loc=0(图例默认选择空白位置出现)
plt.legend([“Language”, “Math”],loc=0)
#显示数据标签
for x1, y1, y2 in zip(x, score_Y, score_S):
plt.text(x1, y1, “%d” % y1,ha=“center”)
plt.text(x1+width_x, y2, “%d” % y2,ha=“center”)
plt.ylim(50, 100)
#设置轴标签
plt.xlabel(“Name”)
plt.ylabel(“Score”)
#文本
plt.figtext(0.1,0.9,“Y_score”)
plt.figtext(0.9,0.1,“X_name”)
#更改X轴刻度
plt.xticks(x, names)
plt.show()
open.close()
结果: