一、什么是Matplotlib
首先先安装Matplotlib
pip install matplotlib
matplotlib是专门用于开发2D图表、3D图表
以渐进、交互方式实现数据可视化
二、为什么学习Matplotlib
可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。
- 能将数据进行可视化,更直观的呈现
- 使数据更加客观、更具说服力
三、实现一个简单的Matplotlib画图-以折线图为例
1、matplotlib.pyplot模块,这个模块包含了一系列类似于matlab的画图函数
import matplotlib.pyplot as plt
2、图形绘制流程
- 创建画布- plt.figure()
plt.figure(figsize=(), dpi=)
# figsize: 指定图的长度
# dpi: 图像的清晰度
# 返回fig对象
- 绘制图像- plt.plot(x, y)
- 显示图像- plt.show()
3、折线图绘制与显示
import matplotlib.pyplot as plt
# 创建画布
plt.figure(figsize=(10, 10), dpi=100)
# 绘制折线图
plt.plot([1, 2, 3, 4, 5, 6, 7], [17, 17, 18, 15, 11, 11, 13])
#显示图像
plt.show()
四、基础绘图功能-以折线图为例
1、完善原始折线图- 给图形添加辅助功能
画出某城市11点到12点1个小时内每分钟的温度变化折线图,温度范围在15度-18度。
1.1准备数据并画出初始折线图
import matplotlib.pyplot as plt
import random
# 画出温度变化图
# 准备x, y坐标的数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
# 创建画布
plt.figure(figsize=(20, 8), dpi= 80)
# 绘制折线图
plt.plot(x, y_shanghai)
# 显示图像
plt.show()
1.2自定义x,y刻度
plt.xticks(x, **kwargs)
x:要显示的刻度值
plt.yticks(y, **kwargs)
y:要显示的刻度值
import matplotlib.pyplot as plt
import random
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
# 准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
# 创建画布
plt.figure(figsize=(20, 8), dpi= 80)
# 绘制图像
plt.plot(x, y_shanghai)
# 添加x,y轴刻度
# 构造x, y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
# 刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks)
# 添加网格显示
plt.grid(True, linestyle = "--", alpha=0.5)
# 添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点-12点某城市温度变化图", fontsize = 20)
# 图像保存
plt.savefig("./test.png")
# 显示图像
plt.show()
2、在一个坐标系种绘制多个图像
# 增加北京的温度数据
y_beijing = [random.uniform(1, 3) for i in x]
# 绘制折线图
plt.plot(x, y_shanghai)
# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--')
3、折线图的应用场景
- 呈现公司产品(不同区域)每天活跃用户数
- 呈现app每天下载数量
- 呈现产品新功能上线后,用户点击次数随时间的变化
- 拓展:画各种数学函数图像
import numpy as np
import matplotlib.pyplot as plt
# 准备数据
x = np.linspace(-10, 10, 1000)
y = np.sin(x)
# 创建画布
plt.figure(figsize=(20, 8), dpi= 100)
# 绘制函数图像
plt.plot(x, y)
#添加网格显示
plt.grid()
# 显示图像
plt.show()
五、小结
- 添加x,y轴刻度
- plt.xticks()
- plt.yticks()
- 注意:在传递进去的第一个参数必须是数字,不能是字符串,如果是字符串,需要进行替换操作
- 添加网格显示
- plt.grid(linestyle=“-”, alpha =0.5)
- 添加描述信息
- plt.xlabel()
- plt.ylabel()
- plt.title()
- 图像保存
- plt.savefig(“路径”)
- 多次plot
- 直接添加
- 显示图例
- plt.legend(loc=“best”)
- 多个坐标系显示
- plt.subplots(nrows = , ncols=)
- 折线图的应用
- 应用于观察数据的变化
- 可以画出一些数学函数图像