354 10行代码看matplotlib绘图基本原理
from matplotlib.figure import Figure
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
fig = Figure()
canvas = FigureCanvas(fig)
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
line, = ax.plot([0,1], [0,1])
ax.set_title("a straight line ")
ax.set_xlabel("x label")
ax.set_ylabel("y label")
canvas.print_figure('chatpic1.jpg')
上面这段代码,至少构建了四个对象: fig( Figure 类), canvas( FigureCanvas 类), ax( Axes 类), line(Line2D 类)。
在 matplotlib 中:
- 整个图像为一个
Figure
对象 - 在
Figure
对象中可以包含一个或多个Axes
对象-
Axes
对象 axes1 都是一个拥有自己坐标系统的绘图区域 - Axes
由
xAxis,
yAxis,
title,
data构成
- xAxis 由
XTick
,Ticker
以及label
构成 - yAxis 由
YTick
,Ticker
以及label
构成
- xAxis 由
-
Axes
对象 axes2 也是一个拥有自己坐标系统的绘图区域 - Axes
由
xAxis,
yAxis,
title,
data构成
- xAxis 由
XTick
,Ticker
以及label
构成 - yAxis 由
YTick
,Ticker
以及label
构成
- xAxis 由
-
如下图所示:
imagecanvas
对象,代表真正进行绘图的后端(backend)
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
,分别表示:图形区域的左边界距离 figure 左侧 10% ,底部 10%,宽度和高度都为整个 figure 宽度和高度的 80%.
在具备这些绘图的基本理论知识后,再去使用 matplotlib 库就会顺手很多。
355 绘制折线图
导入
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
数据
x = np.linspace(0, 5, 10)
y = x ** 2
折线图
plt.plot(x, y)
plt.show()
image
356 调整线条颜色
plt.plot(x, y, 'r')
plt.show()
image
357 修改线型
plt.plot(x, y, 'r--')
plt.show()
image
plt.plot(x, y, 'g-*')
plt.show()
image
358 修改标题
plt.plot(x, y, 'r-*')
plt.title('title')
plt.show()
image
359 添加 x,y轴 label和title
plt.plot(x, y, 'r-*')
plt.title('title')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
image
360 添加 text 文本
plt.plot(x, y, 'r--')
plt.text(1.5,10,'y=x*x')
image
361 添加 annotate 注解
plt.plot(x, y, 'r')
plt.annotate('this is annotate',xy=(3.5,12),xytext=(2,16),arrowprops={'headwidth':10,'facecolor':'r'})
image
网友评论