Z Courses

A Simple Web Classroom

用户工具

站点工具


课程:python数据分析与应用:matplotlib数据可视化:matplotlib数据可视化基础知识

matplotlib数据可视化基础知识

学习目标

  1. 了解有关Matplotlib的常识
  2. 掌握Matplotlib绘图的基本要素

学习内容

关于Matplotlib

  • Matplotlib 是 Python 的一个扩展程序库(Mat致敬MatLab,plot绘制图形,lib表明它是一个库)
  • 提供了大量的绘图组件用于绘制图表,图表可以保存成多种格式
  • 包含一个互动的图表控制平台,可以跨平台方便的修改图表样式

怎样绘制一幅简单的图表?

读代码,认真图表绘制过程。

>>> import numpy as np 
>>> from matplotlib import pyplot as plt 
>>> x = np.arange(1,11) 
>>> y =  2  * x +  5 
>>> plt.title("Matplotlib demo") 
>>> plt.xlabel("x axis caption") 
>>> plt.xlim(0,10)
>>> plt.xticks(np.arange(0,10))
>>> plt.ylabel("y axis caption") 
>>> plt.plot(x,y) 
>>> plt.show()

通过上述代码对比绘制生成的图形,你读懂了什么?

可能产生的几个问题:

  1. plt是什么?
  2. plt.title是用来设置什么的?
  3. xlable、ylable是用来做什么的?
  4. xlim与xticks是用来设定什么的?
  5. plot和show的作用是什么?

解决了以上几个疑问,则绘制一份简单的图表就不存在问题了。

怎样让图表内容更丰富?

对于上述代码功能的进一步追问:

  1. 怎样在图表中显示中文?
  2. 多个图形显示时,怎样设置图例?
  3. 怎样保存已绘制出的图像?

以下三段代码片断用以解决上述问题:

代码1:

import matplotlib
zhfont1 = matplotlib.font_manager.FontProperties(fname="simhei.ttf") 
plt.title("绘图示例", fontproperties=zhfont1)

代码2:

l1,=plt.plot(x,y)
l2,=plt.plot(a)
plt.legend(handles = [l1, l2,], labels = ['a', 'b'], loc = 'best')

代码3:

plt.savefig(“path-of-file)

片断小结

读以下代码,描述生成结果,并上机实践验证。

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2, 100)
plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
plt.show()

小练习

在一个直角坐标系中显示x2与2x的图像。

要求:

  1. 设置标题为about X
  2. 设置图例
  3. 设置图形的表值范围:x轴-4~4,y轴-20~20
  4. 效果如下图所示,最后保存到c盘根目录下

怎样让图表更专业?

怎样设置不同的线型

通过在plt.plot()中增加linestyle参数来实现。对于linestyle的值有这样几种:

| 符号 | 线型 | | : | .... | | -. | -.-.-. | | - - | - - - | | - | --- |

例如:

plt.plot(x,y1,linestyle=':',label='x2')

怎样设置多个图像合在一起显示

使用subplot函数

subplot()函数有三个参数,分别表示这样的含义。第1个参数表示图像分为几行,第2个参数表示图像分为几列,第3个参数表示显示在第几个位置。

例如:

plt.subplot(121)
plt.plot(x,y1,linestyle=':',color='orange',label='x2')
plt.legend()
plt.subplot(122)
plt.plot(x,y2,linestyle='-.',label='2x')
plt.legend()

就会显示下图的示例。

怎样设置网格

给图像设置网格可以让读图的人获得更为精准的数据。在matplotlib中设置网络也是非常容易的。设置方法,在显示前加上以下语句即可。

plt.grid(True)

怎样设置文本标签

在图像上特定的地方进行文本标注有利于图像的解读。给图像加上plt.text()函数,就可以在指定位置设置相应的字符标签。

text()函数中包含以下几个参数,分别是(x,y,s)。

x和y表示text在坐标轴内显示的位置,s表示要显示的内容。

如下图所示: