使用python的matplotlib包绘图,分为以下部分。
- 基础知识
- 常见图形 与安装导入包
- 列表绘图步骤
- 多图绘制
- 数组绘图
一、绘制基础知识
熟悉官方文档
matplotlib.lines.Line2D - Matplotlib 3.1.3
一些绘图基础知识
- 画板figure,画纸Sublpot画质,可多图绘画
- 画纸上最上方是标题title,用来给图形起名字
- 坐标轴Axis,横轴叫x坐标轴label,纵轴叫y坐标轴ylabel
- 图例Legend 代表图形里的内容
- 网格Grid,图形中的虚线,True显示网格
- 点 Markers:表示点的形状。
二、常用图形
基本的视觉元素有三种:点、线、柱状。
- 对于数值类型,用点来进行可视化。例如想要知道学生为某科课程花费的时间和考试成绩两者之间的关系,可以把每个学生的数据绘制一个点,绘制出散点图 scatter plot,可以查看两者之间的相关性。
- 对于时间序列的数据类型,用线条来进行可视化。用线条将相关的数据点连接在一起,帮助我们观察随着时间的变化数据的变化趋势,这样的图叫做折线图line plot。
- 对于分类数据,需要查看数据是如何在各个类别之间分布的,可以使用柱状图 bar plot。
- 用来表示第三个维度时,可以使用颜色。一般很难在二维平面上表示三维数据,这时可以使用颜色视觉元素。最典型是热图heatmap,通过用渐进颜色显示用户热衷的区域或所在地理区域的图。
#导入matplotlib的pyplot模块
三、列表绘图步骤
1、基础绘图步骤
2、绘图属性设置
3、在图片上添加文本
代码:
#1 基础绘图
四、多图绘制
如何使用Python创建多个画板和画纸来绘制多幅图,如果事先不声明画板画板,默认是创建一个画板一个画纸
- 使用figure()方法创建画板1
- 使用subplot()方法创建画纸,并选择当前画纸并绘图
- 同样用subplot()方法选择画纸并绘图
- 最后显示图形
绘制多个图形
subplot()方法里面传入的三个数字 前两个数字代表要生成几行几列的子图矩阵,第三个数字代表选中的子图位置 2行1列的图 (2,1,选择1或者2画纸) subplot(2,1,1)生成一个2行1列的子图矩阵,当前是第一个子图
代码:
#创建画板1
fig = plt.figure(1) #如果不传入参数默认画板1
#第2步创建画纸,并选择画纸1
ax1=plt.subplot(2,1,1)
#在画纸1上绘图
plt.plot([1, 2, 3])
#选择画纸2
ax2=plt.subplot(2,1,2)
#在画纸2上绘图
plt.plot([4, 5, 6])
#显示图像
plt.show()
五、数组绘图
使用数组进行绘图:
上面部分我们给图形传入的数据是列表类型的,但是如果绘制图形只允许传入列表的话,绘制图形会变得很麻烦,所以,我们一般传入的是numpy的数组,实质上所有传入数据的类型在matplotlib内部处理时都会转化为numpy数组类型。接下来看如何使用数组进行绘图:这里用一维数组来绘制多个折线图。
- 第一步,要导入numpy包,再用numpy的一维数组生成一个等差数组,用arange()方法。本例数组中的最小值为0,最大值为5,后一个数据比前一个大0.2。
- 第二步,定义三个折线图的坐标值,分别用x1,x2,x3表示三个坐标轴上x轴的数值,用y1,y2,y3表示y轴上的数值,这些坐标值都是一维数组。
- 第三步,绘制出图形
数组生成使用文档:
numpy.arange - NumPy v1.17 Manualdocs.scipy.org
python运算符文档:
Python3 运算符 | 菜鸟教程www.runoob.com
代码:
#多图绘制