matplotlib数据可视化
1. matplotlib简单介绍
绘制图像一共有两种方式,一种是面向对象的(显示的),利用Figure,axes,另一个是直接用plot.plt(隐式的)
1. 图像的组成
- Figure,顶层级,用来容纳所有绘图元素
- Axes,容纳大量元素可以用来构造一幅幅子图(一个figure可以由一个或多个子图组成)
- Axis,axes的下属层级,用来处理所有和坐标轴,网格有关的元素
- Tick,axis的下属层级,用来处理所有和刻度有关的元素
2.matplot的底层结构
1. 三个层次API:
matplotlib.backend_bases.FigureCanvas
代表了绘图区,所有的图像都是在绘图区完成的
matplotlib.backend_bases.Renderer
代表了渲染器,可以近似理解为画笔,控制如何在 FigureCanvas 上画图。
matplotlib.artist.Artist
代表了具体的图表组件,即调用了Renderer的接口在Canvas上作图。
2. Artist分类
1. primitive
-
包含一些用在绘图区的标准图像对象,例如:曲线Line2D,文字text,矩形Rectangle,图像image等
2. containers
-
用来装基本要素的地方,包括图形figure,坐标系Axes,坐标轴Axis
2. matplotlib标准用法
import matplotlib.pyplot as plt
import numpy as np
#step1
fig = plt.figure()
#step2
ax = fig.add_subplot(2,1,1)
#step3
t = np.arange(0.0,1.0,.01)
s = np.sin(2 * np.pi * t)
line, = ax.plot(t,s,color='blue',lw=2)
3. primitives详细介绍
1. 2DLine:
连接所有顶点的实现样式,也可以是每个顶点的标记
1. 常用参数:
xdata,ydata,linewidth,linestyle,color,marker,markersize
2. 设置属性的方法:
- plot()中设置
# 1) 直接在plot()函数中设置
import matplotlib.pyplot as plt
x = range(0,5)
y = [2,5,7,8,10]
plt.plot(x,y, linewidth=10) # 设置线的粗细参数为10
- 获得线对象,对线对象进行设置
# 2) 通过获得线对象,对线对象进行设置
x = range(0,5)
y = [2,5,7,8,10]
line, = plt.plot(x, y, '-')
line.set_antialiased(False) # 关闭抗锯齿功能
- 获得线属性,使用setp()设置
# 3) 获得线属性,使用setp()函数设置
x = range(0,5)
y = [2,5,7,8,10]
lines = plt.plot(x, y)
plt.setp(lines, color='r', linewidth=10)
3. 绘制lines
-
绘制直线lines
-
pyplot方法绘制
# 1. pyplot方法绘制
import matplotlib.pyplot as plt
x = range(0,5)
y = [2,5,7,8,10]
plt.plot(x,y)
- Line2D对象绘制
# 2. Line2D对象绘制
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
fig = plt.figure()
ax = fig.add_subplot(111)
line = Line2D(x, y)
ax.add_line(line)
ax.set_xlim(min(x), max(x))
ax.set_ylim(min(y), max(y))
plt.show()
-
errorbar绘制误差折线图
-
构造函数主要参数:
x,y,yerr(y轴水平的误差),xerr,fmt(折线图的风格),ecolor,elinewidth
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
x = np.arange(10)
y = 2.5 * np.sin(x / 20 * np.pi)
yerr = np.linspace(0.05, 0.2, 10)
plt.errorbar(x, y + 3, yerr=yerr, label='both limits (default)')
2. patches
1. Rectangle矩形:
通过锚点xy及其宽高生成
-
hist-直方图
-
常用参数:
x,bins,range,density(显示频数统计结果),histtype(bar,barstacked,setp,setpfilled),align(对齐方式,left,mid,right),log(True,表示指数刻度),stacked(True,表示堆积状图)
-
<