【matplotlib】matplotlib.pyplot绘图基础结构分析
程序员文章站
2022-03-01 22:18:57
...
matplotlib.pyplot 绘图基础结构分析
>> matplotlib基础
可实现基础配置,下例是后端配置,主要是渲染方案相关
matplotlib.use(backend, warn=False, force=True)
# Select the backend used for rendering and GUI integration.
backend : str
The backend to switch to. This can either be one of the standard backend names, which are case-insensitive:
- interactive backends: GTK3Agg, GTK3Cairo, MacOSX, nbAgg, Qt4Agg, Qt4Cairo, Qt5Agg, Qt5Cairo, TkAgg, TkCairo, WebAgg, WX, WXAgg, WXCairo
- non-interactive backends: agg, cairo, pdf, pgf, ps, svg, template
or a string of the form: module://my.module.name.
>>> 自定义配置matplotlib包
实现对matplotlib的风格、环境配置。 Customizing Matplotlib with style sheets and rcParams
- rc 表示run and configure 的缩写,就是配置文件,决定启动和整个包的环境配置。
- unix系统中其他类似功能的文件: '.xinitrc', '.vimrc' and '.bashrc'.
>> 2D绘图
matplotlib.figure.Figure
- 基础类: matplotlib.artist.Artist艺术大师
- 所有绘图元素的顶层容器(囊括了所有绘图所需元素)
- figure的实例支持回调函数,而且是像素级的回调,用func(fig)方式会触发回调,fig是一个实例。
注:管理着整个画图板
matplotlib.axes
class matplotlib.axes.Axes(fig, rect, facecolor=None, frameon=True, sharex=None, sharey=None, label='', xscale=None, yscale=None, **kwargs)
- 基类: matplotlib.axes._base._AxesBase
- 涵盖了大量figure中的元素,包括Axis, Tick, Line2D, Text, Polygon, etc., and sets the coordinate system.
- 支持回调函数, 关联事件:'xlim_changed' and 'ylim_changed',回调形式func(ax) , ax是Axes 的实例。
注:
- Axes管理着真正的绘图区
- axes是axis的复数形式,简单理解axis时表示某一个坐标轴的参数,axes时表示多个坐标轴,也就是理解成一个坐标系,构成一个绘图区
>>> matplotlib.pyplot
- 提供和MATLAB相似的绘图框架(意思就是和matlab的绘图风格一致, 减少学习成本)
- 提供了很多方法的封装,主要是实现在figure上进行绘图。
- pylab模块(一款由python提供的可以绘制二维,三维数据的工具模块,其中包括了绘图软件包 matplotlib)将pyplot和numpy两个包集成到一个里面(统一命名空间)方便交互工作,但是编程是还是建议保持命名空间独立,如下例所示。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.1);
y = np.sin(x)
plt.plot(x, y)
- 一种典型画法,就像山水画、人物画、素描、油彩一样
- 该画法是在当前figure中绘制图,根据输入的x,y 绘制线或标号
- 其他画法还有hist,scatter,polar等等
- 常见调用
plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
fmt = '[marker][line][color]' 风格控制,参考链接
注:
- 准确的说plot作用在当前Figure实例上的当前Axes上。
- 默认情况(非主动调用)下就是第1个Figure第1个Axes上,
- 因为matplotlib模块在引用时默认创建了这些。
内部调用,实际就是gca(),即get current axes的意思
def plot(*args, scalex=True, scaley=True, data=None, **kwargs):
return gca().plot(
*args, scalex=scalex, scaley=scaley, **({"data": data} if data
is not None else {}), **kwargs)
>>>> matplotlib.pyplot.subplot
- 给当前figure添加一个子绘图
- 本质是对Figure.add_subplot的封装,所以返回的是一个Axes对象。
- 最大特点是该函数能够对画布进行均匀切分后创建Axes对象,如分割成3x2的网格,然后取第3个等
- 常见形式:
subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(ax)
>>>> matplotlib.pyplot.subplots
- 同时完成新figure的创建和子绘制subplot的生成(列表形式)
- 返回结果既有Figure 也有 Axes对象列表可直接使用。
- 可以看成subplot的高级版本
matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)[source]
>> 3d绘图
>>> mplot3d tutorial
待更新
其他参考:
上一篇: matplotlib设置显示中文
下一篇: matplotlib基础学习(一)
推荐阅读
-
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
-
matplotlib.pyplot绘图显示控制方法
-
数据分析之matplotlib.pyplot模块
-
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
-
Python数据分析matplotlib可视化之绘图
-
【数据分析】基础技术篇 三——matplotlib
-
Matplotlib基础绘图函数实例:饼图,直方图,极坐标图,散点图
-
matplotlib基础绘图命令之imshow的使用
-
Python使用matplotlib实现基础绘图功能示例
-
【matplotlib】matplotlib的基础绘图和调整x轴的刻度