个人简介
课程简介
matplotlib简介
pip install matplotlib
教学目标
安装虚拟环境管理依赖
pip install virtualenv
# 备用
pip install virtualenv -i http://pypi.douban.com/simple/
pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
创建虚拟环境:这里叫ai,是人工智能的意思,里面包含了一些常用的人工智能基础库,mataplotlib是基础库之一
virtualenv ai
激活虚拟环境
.\ai\Scripts\activate
安装matplotlib
pip install matplotlib
创建工作空间(文件夹)
mkdir matplotlib
使用vscode打开文件夹,即可开始编写代码
最重要的步骤
示例:北京气温折线图
# 导入依赖
import matplotlib.pyplot as plt
from random import randint
# 准备数据(后期一般是通过数据分析技术处理后的数据)
# 这里模拟北京11点到12点一小时内的气温,假设是随机从15-18摄氏度变化
y = [randint(15,18) for _ in range(60)]
x = range(60)
# 创建画布
# figsize 控制画布的大小
# dpi 控制画布的像素,也能够有控制画布大小的效果
plt.figure(figsize=(10, 6), dpi=100)
# 绘图
plt.plot(x, y)
# 展示
plt.show()
代码分析
import matplotlib.pyplot as plt
from random import randint
y = [randint(15,18) for _ in range(60)]
x = range(60)
plt.figure(figsize=(10, 6), dpi=100)
figsize=(10, 6)
:指定figure的宽和高,单位为英寸dpi=100
:指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80plt.plot(x, y)
plt.show()
课堂实验:
示例:北京上海气温折线对比图
# 导入依赖
import matplotlib.pyplot as plt
from random import randint
# 准备数据
x = range(60) # 一个小时内的气温
y_beijing = [randint(15, 18) for _ in x] # 北京气温
y_shanghai = [randint(1, 3) for _ in x] # 上海气温
x_ticks = ['11点%02d分'%(i) for i in x] # x轴刻度
y_ticks = range(20) # y轴刻度
# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
# 绘制画布
plt.figure(figsize=(10, 6), dpi=100)
# 绘制图像
plt.plot(x, y_beijing, label='北京气温')
plt.plot(x, y_shanghai, label='上海气温')
# 绘制标题
plt.title('北京上海气温折线对比图')
# 绘制xy轴标签
plt.xlabel("时间")
plt.ylabel("气温")
# 绘制xy轴刻度
plt.xticks(x[::10], x_ticks[::10])
plt.yticks(y_ticks)
# 绘制网格
plt.grid()
# 绘制图例
plt.legend()
# 保存图片
plt.savefig('./test.png')
# 显示图片
plt.show()
代码分析
x = range(60) # 一个小时内的气温
y_beijing = [randint(15, 18) for _ in x] # 北京气温
y_shanghai = [randint(1, 3) for _ in x] # 上海气温
x_ticks = ['11点%02d分'%(i) for i in x] # x轴刻度
y_ticks = range(20) # y轴刻度
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
Microsoft YaHei
:表示微软雅黑字体,也可以替换为系统中的其他存在字体,一般不建议修改plt.plot(x, y_beijing, label='北京气温')
plt.plot(x, y_shanghai, label='上海气温')
# 绘制标题
plt.title('北京上海气温折线对比图')
# 绘制xy轴标签
plt.xlabel("时间")
plt.ylabel("气温")
# 绘制xy轴刻度
plt.xticks(x[::10], x_ticks[::10])
plt.yticks(y_ticks)
# 绘制网格
plt.grid()
# 绘制图例
plt.legend()
plt.savefig('./test.png')