tiger94me

导航

第二回:艺术画笔见乾坤(读书笔记)

import numpy as np #产生数据
import pandas as pd
import re #正常则表达
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D   
from matplotlib.patches import Circle, Wedge
from matplotlib.collections import PatchCollection

一、概述

1. matplotlib的三层api

matplotlib的原理或者说基础逻辑是,用Artist对象在画布(canvas)上绘制(Render)图形。
就和人作画的步骤类似:

  1. 准备一块画布或画纸

  2. 准备好颜料、画笔等制图工具

  3. 作画

所以matplotlib有三个层次的API:

matplotlib.backend_bases.FigureCanvas 代表了绘图区,所有的图像都是在绘图区完成的
matplotlib.backend_bases.Renderer 代表了渲染器,可以近似理解为画笔,控制如何在 FigureCanvas 上画图
matplotlib.artist.Artist 代表了具体的图表组件,即调用了Renderer的接口在Canvas上作图。(图形、文本、线条的设定)
前两者处理程序和计算机的底层交互的事项,第三项Artist就是具体的调用接口来做出我们想要的图,比如图形、文本、线条的设定。所以通常来说,我们95%的时间,都是用来和matplotlib.artist.Artist类打交道的。

2. Artist的分类

Artist有两种类型:primitivescontainers

a.primitive是基本要素,它包含一些我们要在绘图区作图用到的标准图形对象,如曲线Line2D,文字text,矩形Rectangle,图像image等。

b.container是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis

 

Axes helper method

Artist

Container

bar - bar charts

Rectangle

ax.patches

errorbar - error bar plots

Line2D and Rectangle

ax.lines and ax.patches

fill - shared area

Polygon

ax.patches

hist - histograms

Rectangle

ax.patches

imshow - image data

AxesImage

ax.images

plot - xy plots

Line2D

ax.lines

scatter - scatter charts

PolyCollection

ax.collections

只用记住第一列的辅助方法进行绘图即可,而无需关注具体底层使用了哪些类,但是了解底层类有助于我们绘制一些复杂的图表,因此也很有必要了解。

第一列表示matplotlib中子图上的辅助方法

第二列表示不同图表背后的artist类

第三列是第二列的列表容器,例如所有在子图中创建的Line2D对象都会被自动收集到ax.lines返回的列表中。

 

 

 

 

 

posted on 2022-06-13 22:01  学到老必须的  阅读(26)  评论(0编辑  收藏  举报