主要内容 #
综合实战:数据可视化,了解NumPy和Matplotlib的数据分析基础包,掌握数据可视化的基本编写
6.Matplotlib的使用2 #
在许多情况下,我们使用 pyplot.subplots()在一个图像上创建多个子图像,以下示例展示了使用pyplot.subplots()将上节课的折线图、柱状图、散点图,在一张图像上分三处绘制出来
关于该函数的更多详细使用参照pyplot.subplots()参考手册(点击查询)
import matplotlib.pyplot as plt
data = {'小明': 90, '小东': 89, '小红': 85, '小亮': 92}#每位同学的python成绩
plt.rc('font',family='SimHei')#matplotlib的默认字体不支持中文
names = list(data.keys())
values = list(data.values())
fig, axs = plt.subplots(1, 3, sharey=True,figsize=(9, 4), dpi=100)#返回figure(整张图),axs(子图形对象的numpy一维矩阵)
#subplots()参数说明: 1->字图像行数;3->字图像列数;sharey=True每个字图像分享y坐标;figsize=(9, 4)->图像长宽单位英寸;dpi=100->分辨率
axs[0].bar(names, values)#第一个字图像柱状图
axs[1].scatter(names, values)#第二个字图像散点图
axs[2].plot(names, values)#第三个字图像折线图
fig.suptitle('大师码第三期python成绩分布图')#添加标题
plt.show()
7.GDP绘制示意图 #
链接的data.txt文件,是世界主要经济体从1960-2017年的GDP总量数据(单位:百亿$),请下载资源文件data.txt,粘贴到当前目录——data.txt(点击下载),完成下图绘制
注意其中二维numpy矩阵的切片使用,与列表基本相同
import numpy as np
import matplotlib.pyplot as plt
plt.rc('font',family='SimHei')
fig,ax=plt.subplots(dpi=100)#plt.subplots()的使用默认一个子图形
gdplist=[]
with open('P83_1data.txt') as data:
for line in data:
a=line.strip().split('\t')
gdplist.append(a)
gdp=np.array(gdplist)
x=gdp[:,0]#二维矩阵取第一列
y=gdp[:,1].astype(float)#二维矩阵取第二列
ax.barh(x[1:],y[1:])#绘制柱状图
#设置标题,添加文字说明
ax.set_title('1960年世界GDP排名图(单位:百亿$)',fontsize=20)#标题
ax.spines['top'].set_color('none')#顶部的spine颜色设置为无
ax.spines['right'].set_color('none')#右边的spine颜色设置为无
ax.text(4,0,"1960年", fontsize=20)#添加文字参数(4,0)表示横坐标和纵坐标
ax.text(4,-4,"GDP总量(百亿$)", fontsize=16)
plt.show()
习题 #
参照示例二,绘制世界主要经济体2017年的GDP总量数据图形
OJ训练题 #
1、英雄卡 – ★
2、选班长 – ★
3、打字员 – ★★★
4、购物攻略 – ★★
5、摆积木 – ★★★