数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二、matplotlib Artist
matplotlib
有三个层次的API:matplotlib.backend_bases.FigureCanvas
:代表了一个绘图区,在这个绘图区上图表被绘制matplotlib.backend_bases.Renderer
:代表了渲染器,它知道如何在绘图区上绘图。matplotlib.artist.Artist
:代表了图表组件,它知道如何利用渲染器在绘图区上绘图。
通常用于有95%以上的时机都是与
matplotlib.artist.Artist
类打交道,它是高层次的绘图控制。matplotlib
中有两种Artist
:primitive
:代表了我们在绘图区域上绘制的基础的绘图组件,比如Line2D
,Rectangle
,Text
以及AxesImage
等等。container
:代表了放置primitive
的那些绘图组件。比如Axis
、Axes
以及Figure
,如图所示
matplotlib
的标准使用流程为:- 创建一个
Figure
实例对象fig
- 使用
fig
实例创建一个或者多个Axes
实例,或者创建一个或者多个Subplot
实例 - 使用
Axes
实例的方法来创建primitive
- 创建一个
每个在图形中出现的元素都是
Artist
。其属性有:Figure.patch
属性:是一个Rectangle
,代表了图表的矩形框,它的大小就是图表的大小, 并且可以通过它设置图表的背景色和透明度。Axes.patch
属性:也是一个Rectangle
,代表了绘图坐标轴内部的矩形框(白底黑边), 通过它可以设置Axes
的颜色、透明度等。所有的
Artist
有下列属性。:.alpha
属性:透明度。值为0--1之间的浮点数.animated
属性:一个布尔值,表示是否用于加速动画绘制.axes
属性:返回这个Artist
所属的axes
,可能为None
.clip_box
属性:用于剪切Artist
的bounding box
.clip_on
属性:是否开启clip
.clip_path
属性:Artist
沿着该path
执行clip
.contains
属性:一个picking function
用于测试Artist
是否包含pick point
.figure
属性:该Artist
所属的Figure
,可能为None
.gid
属性:该Artist
的id
字符串.label
:一个text label
.picker
:一个python object
用于控制object picking
.transform
:转换矩阵.url
属性:一个url string
,代表本Artist
.visible
:布尔值,控制Artist
是否绘制.zorder
:决定了Artist
的绘制顺序。zorder
越小就越底层,则越优先绘制。
这些属性可以通过旧式的
setter
和getter
函数访问和设置。如:o.get_alpha()
、o.set_alpha(0.5)
。如果你想一次设置多个属性,也可以用:o.set(alpha=0.5,zorder=2)
这种方式。你可以使用matplotlib.artist.getp(o)
来一次获取o
的所有属性。当然你可以使用
pyplot.getp(o,"alpha")
来获取属性(一次只能返回一个属性),如果指定属性名,则返回对象的该属性值;如果不指定属性名,则返回对象的所有的属性和值。用pyplot.setp(o,alpha=0.5,zorder=2)
来设置属性(一次可以设置多个属性)
1. container Artist:
a. Figure
matplotlib.figure.Figure
是最顶层的container Artist
,它包含了图表中的所有元素。Figure.patch
属性:Figure
的背景矩形Figure.axes
属性:持有的一个Axes
实例的列表(包括Subplot
)Figure.images
属性:持有的一个FigureImages patch
列表Figure.lines
属性:持有一个Line2D
实例的列表(很少使用)Figure.legends
属性:持有的一个Figure Legend
实例列表(不同于Axes.legends
)Figure.patches
属性:持有的一个Figure pathes
实例列表(很少使用)Figure.texts
属性:持有的Figure Text
实例列表
其他的属性:
Figure.figsize
属性:图像的尺寸,(w,h)
,以英寸为单位Figure.dpi
属性:图像分辨率Figure.facecolor
属性:背景色Figure.edgecolor
属性:edge color
Figure.linewidth
:edge linewidth
Figure.frameon
:如果为False
,则不绘制图像Figure.subplotpars
:一个SubplotParams
实例Figure.tight_layout
:如果为False
,则使用subplotpars
;否则使用tight_layout()
调整subplot parameters
当你执行
Figure.add_subplot()
或者Figure.add_axes()
时,这些新建的Axes
都被添加到Figure.axes
列表中。由于
Figure
维持了current axes
,因此你不应该手动的从Figure.axes
列表中添加删除元素,而是要通过Figure.add_subplot()
、Figure.add_axes()
来添加元素,通过Figure.delaxes()
来删除元素。但是你可以迭代或者访问Figure.axes
中的Axes
,然后修改这个Axes
的属性。可以通过
Figure.gca()
获取current axes
,通过Figure.sca()
设置current axes
。Figure
也有它自己的text
、line
、patch
、image
。你可以直接通过add primitive
语句直接添加。但是注意Figure
默认的坐标系是以像素为单位,你可能需要转换成figure
坐标系:(0,0)表示左下点,(1,1)表示右上点。创建
Figure
的方法:matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, **kwargs)
num
:一个整数或者字符串。- 若未提供,则创建一个新的
figure
。 - 如果给出了一个整数,而且某个现有的
figure
对象的number
属性刚好等于这个整数,则激活该figure
并且返回该figure
;否则创建一个新的figure
- 如果是个字符串,则创建一个新的
figure
,并且将window title
设置为该字符串。
- 若未提供,则创建一个新的
figsize
:一对整数的元组。给出了英寸为单位的高度和宽度。默认由rc
的figure.figsize
给出dpi
:一个整数,给出figure
的分辨率。默认由rc
的figure.dpi
给出facecolor
:背景色。若未提供,则由rc
的figure.facecolor
给出edgecolor
:border color
。若未提供,则由rc
的figure.edgecolor
给出
返回一个
figure
1>. Figure 的一些方法
add_axes(*args, **kwargs)
:创建一个Axes
对象。如果已经存在同样位置同样参数的一个Axes
,则返回该Axes
,并将其设为current Axes
。其参数有:rect
:一个元组,代表了(left,bottom,width,height)
,它是第一个位置参数axisbg
:一个color
,背景色frameon
:布尔值,是否display frame
sharex
:另一个Axes
对象,与该Axes
共享xaxis
sharey
:另一个Axes
对象,与该Axes
共享yaxis
projection
:坐标系类型。projection='polar'
也等价于polar=True
aspect
:一个数值,指定x
和y
轴每个单位的尺寸比例。也可以设定为字符串'equal'/'auto'
- 关键字参数为
projection
+Axes
的合法关键字
如果你想在同样的一个
rect
创建两个Axes
,那么你需要设置label
参数。不同的Axes
通过不同的label
鉴别。如果你使用了
fig.delaxes()
从Figure
中移除了ax
,那么你可以通过fig.add_exes(ax)
来将其放回。add_subplot(*args,**kwargs)
:创建一个subplot
。如果已经存在同样位置同样参数的一个subplot
,则返回该subplot
,并将其设为current Axes
。- 关键字参数为
projection
+Axes
的合法关键字。projection
:坐标系类型。projection='polar'
也等价于polar=True
- 位置参数为:
add_subplot(nrows, ncols, plot_number)
。表示nrows
行,nclos
列每个单元格是一个sub-axes
。plot_number
给出了指定的sub-axes
,从 1开始。最大为nrows*ncols
。当这三个数字都是个位数时,可以使用一个三位数代替,每位代表一个数。 axisbg
:一个color
,背景色frameon
:布尔值,是否display frame
sharex
:另一个Axes
对象,与该Axes
共享xaxis
sharey
:另一个Axes
对象,与该Axes
共享yaxis
projection
:坐标系类型。projection='polar'
也等价于polar=True
aspect
:一个数值,指定x
和y
轴每个单位的尺寸比例。也可以设定为字符串'equal'/'auto'
- 关键字参数为
autofmt_xdate(bottom=0.2, rotation=30, ha='right')
:用于设置Date ticklabel
的位置。bottom
设置距离subplot
底部的位置。rotation
设置了xtick label
的旋转角度。ha
设置xtick label
的对其方式。该函数主要用于当xtick
为日期,可能会重叠,因此可以旋转一个角度clear()
:清除一个figure
clf(keep_observers=False)
:清除一个figure
。如果keep_observers=True
,则gui
仍然会跟踪figure
中的axes
colorbar(mappable, cax=None, ax=None, use_gridspec=True, **kw)
:为mappable
创建一个colorbar
。其中:mapple
:一个ScalarMapple
实例。它可以是Image/ContourSet...
。cax
:指定在哪个axes
中绘制colorbar
。也可以是None
ax
:None | parent axes object(s) from which space for a new colorbar axes will be stolen.use_gridspec
:False | If cax is None, a new cax is created as an instance of Axes. If ax is an instance of Subplot and use_gridspec is True, cax is created as an instance of Subplot using the grid_spec module
delaxes(a)
:从figure
中移除axes
gca(**kwargs)
:返回current axes
。如果不存在则创建一个get_children()
:获取figure
中包含的artists
get_dpi/get_edgecolor/get_facecolor/get_figheight/get_figwidth/
get_frameon/get_tight_layout...
:获取对应的属性值get_size_inches()
:返回fig
的当前尺寸(单位为英寸。1in=2.54cm
)legend(handles, labels, *args, **kwargs)
:创建图例。handles
:是一个Lin2D/Patch
等实例的一个序列labels
:是个字符串序列,用于给上述实例添加图例说明loc
:指定图例的位置。可以是字符串'best'
/'upper right'
/'upper left'
/'lower left'
/'lower right'
/'right'
/'center left'
/'center right'
/'lower center'
/'upper center'
/'center'
。你也可以指定坐标(x,y)
,其中(0,0)
是左下角,(1,1)
是右上角numpoint
/scatterpoints
:图例上每个图例线的点数fancybox
:如果为True
,图例的边框采用圆角矩形shadow
:如果为True
,图例添加背影ncol
:列数title
:图例的标题framealpha
:一个浮点数,从0到 1,图例的透明度frameon
:一个布尔值,如果为True
,则绘制图例的背景框。否则不绘制。
savefig(fname, dpi=None, facecolor='w', edgecolor='w',orientation='portrait', papertype=None, format=None, transparent=False, bbox_inches=None, pad_inches=0.1,frameon=None)
:保存图像。fname
:带路径的文件名。dpi
:保存的分辨率。facecolor/edgecolor
:figure rectangle
的背景色和边线颜色orientation
:可以为'landscape' | 'portrait'
format
:图片格式。可以为'png'/'pdf'/'svg'/'eps'...
transparent
:如果为True
,设置figure
和axes
背景透明(除非你设置了facecolor/edgecolor
)frameon
:如果为False
,则图形背景透明
sca(a)
:设置a
为current axes
并返回它set_dpi/set_edgecolor...
:设置相关属性show(warn=True)
:显示图像。如果warn=True
,则开启警报subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=None, hspace=None)
:调整subplot
的位置。suptitle(t, **kwargs)
:设置图像标题。t
为标题字符串。关键字参数就是Text
对象的参数:x
:在图形坐标系中,标题的横坐标(范围 0~1)y
:在图形坐标系中,标题的纵坐标(范围 0~1)horizontalalignment
:标题水平对齐方式,默认为'center'
verticalalignment
:标题垂直对齐方式,默认为'top'
fontsize
:字体大小
text(x, y, s, *args, **kwargs)
:添加文本。x
:在图形坐标系中,标题的横坐标(范围 0~1)y
:在图形坐标系中,标题的纵坐标(范围 0~1)s
:文本字符串
tight_layout(renderer=None, pad=1.08, h_pad=None, w_pad=None, rect=None)
:调整subplot
的间距。pad
:设定subplot
和figure edge
之间的距离。单位为font-size
h_pad/w_pad
:subplot
之间的高距/宽距。
b. Axes类
Axes
类是matplotlib
的核心,你在大多数时间都是在与它打交道。Axes
代表了plotting area
。大量的用于绘图的Artist
存放在它内部,并且它有许多辅助方法来创建和添加Artist
给它自己,而且它也有许多赋值方法来访问和修改这些Artist
。它有许多方法用于绘图,如
.plot()
、.text()
、.hist()
、.imshow()
等方法用于创建大多数常见的primitive
(如Line2D
,Rectangle
,Text
,Image
等等)。这些方法会创建primitive Artist
实例,并且添加这些实例到对应的container
上去,然后必要的时候会绘制这些图形。Subplot
就是一个特殊的Axes
,其实例是位于网格中某个区域的Subplot
实例。其实你也可以在任意区域创建Axes
,通过Figure.add_axes([left,bottom,width,height])
来创建一个任意区域的Axes
,其中left,bottom,width,height
都是[0--1]之间的浮点数,他们代表了相对于Figure
的坐标。Axes
包含了一个.patch
属性,对于笛卡尔坐标系而言,它是一个Rectangle
;对于极坐标而言,它是一个Circle
。这个.patch
属性决定了plotting region
的形状、背景和边框。当调用
Axes.plot()
方法时,该方法会创建一个matplotlib.lines.Line2D
实例,然后会利用传给.plot()
的关键字参数来更新该Line2D
的属性,然后将这个Line2D
添加到Axes.lines
列表中。该方法返回的刚创建的Line2D
列表,因为你可以传递多个(x,y)
值从而创建多个Line2D
。当调用
Axes.hist()
方法时,类似于.plot()
方法,不过它会添加patches
到Axes.patches
列表。你不应该直接通过
Axes.lines
和Axes.patches
列表来添加图表。因为当你通过.plot()
和.hist()
等方法添加图表时,matplotlib
会做许多工作而不仅仅是添加绘图组件到Axes.lines
或者Axes.patches
列表中。但是你可以使用
Axes
的辅助方法.add_line()
和.add_patch()
方法来添加。下面是
Axes
用于创建primitive Artist
以及添加他们到相应的container
中的方法:ax.annotate()
:创建text annotation
(Annotate
对象),然后添加到ax.texts
列表中。ax.bar()
:创建bar chart
(Rectangle
对象),然后添加到ax.patches
列表中。ax.errorbar()
:创建error bar plot
(Line2D
对象和Rectangle
对象),然后添加到ax.lines
列表中和ax.patches
列表中。ax.fill()
:创建shared area
(Polygon
对象),然后添加到ax.patches
列表中ax.hist()
:创建histogram
(Rectangle
对象),然后添加到ax.patches
列表中。ax.imshow()
:创建image data
(AxesImage
对象),然后添加到ax.images
列表中。ax.legend()
:创建axes legends
(Legend
对象),然后添加到ax.legends
列表中。ax.plot()
:创建xy plot
(Line2D
对象),然后添加到ax.lines
列表中。ax.scatter()
:创建scatter charts
(PolygonCollection
对象),然后添加到ax.collections
列表中。ax.text()
:创建text
(Text
对象),然后添加到ax.texts
列表中。
另外
Axes
还包含两个最重要的Artist container
:ax.xaxis
:XAxis
对象的实例,用于处理x
轴tick
以及label
的绘制ax.yaxis
:YAxis
对象的实例,用于处理y
轴tick
以及label
的绘制
Axes
包含了许多辅助方法来访问和修改XAxis
和YAxis
,这些辅助方法其实内部调用的是XAxis
和YAxis
的方法。因此通常情况下你不需要直接调用XAxis
和YAxis
的方法。
1>. Axes 的一些方法
acorr(x, **kwargs)
:绘制序列x
的自相关。x
:一个标量序列。对x
执行自相关normed
:一个布尔值,如果为True
,则对数据正则化处理maxlags
:一个整数,默认为10.它给出了要展示多少个lag
。如果为None
,则使用所有的2*len(x)-1
个- 其他
kwargs
:控制了Line2D
的属性
返回:
(lags,c,lin,b)
lags
:是一个长度为2*maxlags+
的lag vector
c
:是长度为2*maxlags+
的自相关向量line
:是一个Line2D
实例b
:是x-axis
add_artist(a)
:添加a
(一个Artist
对象)到axes
上add_collection(collection, autolim=True)
:添加Collection
实例到axes
上add_container(container)
:添加Container
实例到axes
上add_image(image)
:添加Image
实例到axes
上add_line(line)
:添加Line2D
实例到axes
上add_patch(p)
:添加Patch
实例到axes
上add_table(tab)
:添加Table
实例到axes
上annotate(*args, **kwargs)
:对坐标点(x,y)
绘制注解。s
:注解字符串xy
:一个长度为2的序列,给出了坐标点的(x,y)
坐标xytext
:一个长度为2的序列,给出了注解字符串的(x,y)
坐标xycoords
:给出了坐标点的(x,y)
所对应的坐标系。可以为'figure points'
、'figure pixels'
、'figure fraction'
、'axes points'
、'axes pixels'
、'axes fraction'
、'data'
。其中figure
表示Figure
坐标系,axes
表示Axes
坐标系,data
表示被注解的点所在的数据坐标系。points
表示单位为点(分辨率的点);pixels
表示单位为像素,fraction
表示:(0,0) 为左下角,(1,1) 为右上角textcoords
:给出了注解字符串的(x,y)
所对应的坐标系。可以为xycoords
允许的值之外,还可以为:'offset points'
:偏移被注解的坐标点的距离为(x,y)
个点(分辨率的点)'offset pixels'
:偏移被注解的坐标点的距离为(x,y)
个像素
arrowprops
:一个字典,给出了箭头的类型。- 若字典不包含
arrowstyle
,则可以使用下面的键:width/headwidth/headlength/shrink
以及其他的FancyArrowPatch
的属性。 - 如果字典包含了
arrowstyle
,则上面的这些键将被屏蔽。arrowstyle
的值可以为:'-'
、'->'
、'-['
、'|-|'
、'-|>'
、'<-'
、'<->'
、'<|-'
、'<|-|>'
、'fancy'
、'simple'
、'wedge'
- 若字典不包含
annotation_clip
:一个布尔值。如果为True
,则超出axes
的部分将会不可见
autoscale_view(tight=None, scalex=True, scaley=True)
:自动调整坐标轴的范围。如果你不想自动调整x
轴,则scalex=False
即可。y
轴类似。arrow(x, y, dx, dy, **kwargs)
:绘制箭头。箭头起点为(x,y)
,终点为(x+dx,y+dy)
。你也可以使用annotate()
来模拟本方法。x,y
:箭头起点坐标(data
坐标系)dxx,dy
:箭头终点坐标为(x+dx,y+dy)
(data
坐标系)width
:箭头宽度length_includes_head:
:如果为True
,则箭头的头部也算在箭头长度内head_width
:箭头的头部宽度head_length
:箭头的头部长度shape
:可以为'full'/'left'/'right'
。确定是绘制左半边/右半边还是全部画出- 其他参数控制了
Patch
的属性
axhline(y=0, xmin=0, xmax=1, **kwargs)
:绘制水平线。y
:一个标量,默认为 0.给出了水平的y
坐标(采用data
坐标系)xmin
:一个标量,默认为 0。给出了水平线的起始横坐标。最大为 1(表示最右侧)(使用Axes
坐标系)xmax
:一个标量,默认为 1。 给出了水平线的终点横坐标。最小为 0 (表示最左侧)(使用Axes
坐标系)- 其他关键字参数控制
Line2D
的属性
axhspan(ymin, ymax, xmin=0, xmax=1, **kwargs)
:绘制水平区域。ymin/ymax
:给出了水平区域的y
坐标的下界和上界,采用data
坐标系xmin/xmax
:给出了水平区域的左侧和右侧的位置。采用Axes
坐标系,最小为0,最大为 1- 其他关键字参数控制
Line2D
的属性
axis(*v, **kwargs)
:设置axis
属性,它返回的是(xmin,xmax,ymin,ymax)
。data
坐标系下每个轴的最小值、最大值。v
: Axis data limits set from a float list。也可以是字符串:'on'
:Toggle axis lines and labels on'off'
:Toggle axis lines and labels off'equal'
:Equal scaling by changing limits''tight
:Limits set such that all data is shown'auto'
:Automatic scaling, fill rectangle with data
xmin/ymin/ymax/ymax
:待设置的轴的最小/最大值
axvline(x=0, ymin=0, ymax=1, **kwargs)
:绘制垂直线。x
:一个标量,默认为 0.给出了垂直线的x
坐标(采用data
坐标系)ymin
:一个标量,默认为 0。给出了垂直线的起始纵坐标。最大为 1(表示最上侧)(使用Axes
坐标系)ymax
:一个标量,默认为 1。 给出了垂直线的终点纵坐标。最小为 0 (表示最下侧)(使用Axes
坐标系)- 其他关键字参数控制
Line2D
的属性
axvspan(xmin, xmax, ymin=0, ymax=1, **kwargs)
:绘制垂直区域。xmin/xmax
:给出了垂直区域的x
坐标的左侧和右侧,采用data
坐标系ymin/ymax
:给出了垂直区域的上侧和下侧的位置。采用Axes
坐标系,最小为0,最大为 1- 其他关键字参数控制
Line2D
的属性
bar(left, height, width=0.8, bottom=None, **kwargs)
:绘制一个bar
。left
:一个标量或者标量的序列,bar
的左侧的x
坐标,采用data
坐标系height
:一个标量或者标量的序列,bar
的高度,采用data
坐标系width
:一个标量或者标量的序列,bar
的宽度,默认为 0.8,采用data
坐标系bottom
:一个标量或者标量的序列,bar
的底部的y
坐标,默认为 0,采用data
坐标系color
:一个标量或者标量的序列,bar
的背景色edgecolor
:一个标量或者标量的序列,bar
的边色颜色linewidth
:一个标量或者标量的序列,bar
的边的线宽tick_label
:一个字符串或者字符串的序列,给出了bar
的label
xerr
:一个标量或者标量的序列,用于设置bar
的errorbar
。(水平方向的小横线)yerr
:一个标量或者标量的序列,用于设置bar
的errorbar
(垂直方向的小横线)ecolor
:一个标量或者标量的序列,用于设置errorbar
。capsize
:一个标量,用于设置errorbar
。小横线头部的一个小短线error_kw
:一个字典,用于设置errorbar
。如ecolor/capsize
关键字align
:一个字符串,设定bar
的对齐方式。可以为'edge'
或者'center'
。柱子的左边跟x=left
线对齐,还是柱子的中线跟x=left
线对齐。orientation
:一个字符串,指定bar
的方向。可以为'vertical'
或者'horizontal'
。它决定了errbar
和label
放置的位置。log
:一个布尔值,如果为True
,则设置axis
为对数坐标
返回
matplotlib.container.BarContainer
.你可以一次添加多个
bar
,此时就是上述的“标量的序列”。barh(bottom, width, height=0.8, left=None, **kwargs)
:绘制水平的bar
bottom
:一个标量或者标量的序列,bar
的底部的y
坐标,默认为 0,采用data
坐标系width
:一个标量或者标量的序列,bar
的宽度,默认为 0.8,采用data
坐标系height
:一个标量或者标量的序列,bar
的高度,采用data
坐标系left
:一个标量或者标量的序列,bar
的左侧的x
坐标,采用data
坐标系- 其他参数参考
bar
方法
它就是
bar(orientation='horizontal')
。cla()/clear()
:清除Axes
clabel(CS, *args, **kwargs)
:为等高线添加label
。CS
:由contour
函数返回的ContourSet
,代表一组等高线fontsize
:label
的字体大小,或者给出字符串'smaller'/'x-large'
colors
:如果为None
,则使用对应的等高线的颜色。如果为一个字符串指定的颜色,则所有的等高线label
使用该颜色。如果为一组颜色,则不同的等高线的label
按顺序使用其中的不同的颜色。inline
:一个布尔值。如果为True
,则移除label
覆盖的底层的等高线(嵌入式);否则就全部绘制(重叠式)inline_spacing
:一个浮点数,单位为像素点。它控制了label
距离等高线的距离
contour(*args, **kwargs)
:绘制等高线。它返回一个QuadContourSet
对象 最常用的四种方式:contour(Z)
:其中Z
为二维数组。数据坐标系下的坐标点(i,j)
对应了Z[j,i]
(x
轴对应列,y
轴对应行)。该方法随机挑选一些等高线绘制。contour(X,Y,Z)
:其中X/Y/Z
均为二维数组,且形状相同。对应位置的横坐标由X
提供,纵坐标由Y
提供,值由Z
提供。该方法随机挑选一些等高线绘制。X
和Y
也可以同时是一维数组,且len(X)
是Z
的列数,len(Y)
是Z
的行数。contour(Z,N)/contour(X,Y,Z,N)
:N
为一个整数,表示绘制N
条等高线。该方法随机挑选N
条等高线绘制。contour(Z,V)/contour(X,Y,Z,V)
:V
为一个递增的序列,表示绘制那些值位于V
中的等高线
其他关键字参数:
colors
:如果为None
,则由cmap
给出。如果是一个字符串,这所有的等高线由字符串指定的颜色给出。如果是一个序列,该序列中每个都代表了一个颜色,则等高线的颜色依次由该序列给出。cmap
:一个Colormap
对象。如果为None
,则默认的Colormap
将被使用levels
:一个序列(升序排列)。指定了要绘制等高线值位于levels
的等高线。origin
:参考Axes.imshow
中的该参数设置。extent
:它是一个元组(x0,x1,y0,y1)
。如果给出了(X,Y)
,则该参数无效。如果未给出(X,Y)
:- 如果
origin
非None
,则它给出了外边界,Z[0,0]
位于图形中间 - 如果
origin
为None
,则(x0,y0)
对应Z[0,0]
;(x1,y1)
对应Z[-1.-1]
,等价于同时使用了set_xlim(left,right)+set_ylim(bottom,top)
- 如果
antialiased
:一个布尔值,用于开启/关闭反走样linewidths
:如果为None
,则使用默认值。如果为一个整数,则所有的等高线都是用该线宽。如果为一个整数序列,则等高线依次使用它指定的线宽。只有contour
适用linestyles
:如果为None
,则使用默认的实线。你也可以指定为'solid'/'dashed'/'dashdot'/'dotted'
。你可以指定搜有的等高线使用一种线型,也可以使用一个线型序列。只有contour
适用
contourf(*args, **kwargs)
:它绘制的是带填充的等高线。其参数和用法基本和contour
相同。它返回一个QuadContourSet
对象contourf(Z,V)/contourf(X,Y,Z,V)
:V
是递增的序列,指定了等高线的值。该方法会填充V
中相邻两个等高线之间的区域contourf
不同与contour
的关键字参数为hatches
:它指定了填充区域的填充类型(如以小斜线填充)。如果为None
,则无任何hatch
。它典型值为hatches=['.', '/', '\', None, '\\', '*','-',]
contourf
填充的是半开半闭区间(z1,z2]
errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None, elinewidth=None,
capsize=None, barsabove=False, lolims=False, uplims=False, xlolims=False,
xuplims=False, errorevery=1, capthick=None, **kwargs)
:绘制errorbar
,返回(plotline, caplines, barlinecols)
x
:一个序列,指定x
坐标y
:一个序列,指定y
坐标。即:y=f(x)
yerr
:指定y
的error
。如果为标量,则每个点都是相同的error
;如果为一维向量,则依次给出了每个点的error
。如果是个二维向量,则依次给出了每个点的上error
和下error
xerr
:指定x
的error
。如果为标量,则每个点都是相同的error
;如果为一维向量,则依次给出了每个点的error
。如果是个二维向量,则依次给出了每个点的左error
和右error
fmt
:可以为空字符串,或者'none'
或者其他的plot format string
。如果是'none'
则只有errorbars
能够被绘制ecolor
:指定了errorbar
的颜色elinewidth
:指定了errorbar
的线宽capsize
:指定了errorbar
头部的小横线的宽度errorevery
:一个整数。如果为 4, 则每隔 4个点才绘制一个errorbar
- 其他的关键字参数都是用于指定
marker
的类型。如: `marker='s', mfc='red', mec='green', ms=20, mew=4。他们是
markderfacecolor,markeredgecolor,markdersize,markderedgewidth`的缩写。
eventplot(positions, orientation='horizontal', lineoffsets=1, linelengths=1,
linewidths=None, colors=None, linestyles='solid', **kwargs)
:绘制时间线。时间线就是在指定位置上并排的一系列线段。返回matplotlib.collections.EventCollection
的一个列表positions
:一个一维或者二维的数组。每一行代表了一组直线orientation
:可以为'horizonal'|'vertical'
,代表了摆放时间线的方式。如果是水平走向的,则垂直摆放直线;如果是垂直走向的,则水平放置直线lineoffsets
:一个浮点数或者浮点数的序列,指定了时间线中轴距离y=0
的偏离值linelengths
:一个浮点数或者浮点数的序列,指定了线的长度linewidths
:一个浮点数或者浮点数的序列,指定了线的宽度colors
:一个颜色或者一组颜色,指定了线的颜色。颜色可以为颜色字符串,或者一个RGB
元组。linestyles
:一个线型或者一组线型,指定了线型。线型在'solid' | 'dashed' | 'dashdot' | 'dotted'
四者之一
如果
positions
是一个一维数组,表示绘制一组时间线。那么lineoffsets/linelengths/linewidths/colors/linestyles
都是标量值,指定该组时间线的格式。如果positions
是一个二维数组则,有多少行,就有多少组时间线。制定时间线格式的这些参数都是序列,序列长度就是positions
的行数。fill(*args, **kwargs)
:绘制多边形。返回一个Patch
列表。其常用的方式为:绘制一个多边形:
fill(x,y,'b')
,其中x
为多边形的边上的点的x
坐标;y
为多边形的边上的点的y
坐标。'b'
为多边形的填充颜色。绘制多个多边形:
fill(x1,y1,'b',x2,y2,'r')
。这里指定多个x,y,color
就可以。closed
关键字参数:一个布尔值,确定是否封闭多边形(即多一条从起点到终点的边)。默认为True
plot()
支持的color string
在这里也被支持剩下的关键字参数用于控制
Polygon
的属性。如hatch
:一个字符串,指定填充方式,如['/' | '\' | '|' | '-' | '+' | 'x' | 'o' | 'O' | '.' | '*']
label
:一个字符串,指定标签fill
:一个布尔值,决定是否填充facecolor/edgecolor/color
:颜色
fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, **kwargs)
:绘制填充区域。它填充两个曲线之间的部分。它返回一个PolyCollection
对象。x
:一个序列,指定x
坐标y1
:第一条曲线的纵坐标。如果为标量,说明该曲线为水平线。y2
:第二条曲线的纵坐标。如果为标量,说明该曲线为水平线。where
:指定填充哪里。如果为None
,则填充两条曲线之间的所有区域,这是默认值。如果非None
,则他是一个一维布尔数组,长度与x
相同。只有为True
对应的x
处才被填充。interpolate
:一个布尔值。如果True
,则进行插值计算来寻找两个曲线的交点。如果为False
,则不进行插值。step
:可以为'pre'/'post'/'mid'
或者None
,设定填充区域的边界的形状。
fill_betweenx(y, x1, x2=0, where=None, step=None, **kwargs)
:绘制填充区域。该区域是以y
为自变量,x
为函数的两条曲线合围而成。它返回一个PolyCollection
对象。y
:一个序列,为纵坐标x1
:第一个曲线的x
坐标。它是一个反函数,即以y
为自变量x2
:第二个曲线的y
坐标。它也是一个反函数where
:指定填充哪里。如果为None
,则填充两条曲线之间的所有区域,这是默认值。如果非None
,则他是一个一维布尔数组,长度与y
相同。只有为True
对应的y
处才被填充。step
:可以为'pre'/'post'/'mid'
或者None
,设定填充区域的边界的形状。
通常建议提供一个
alpha
参数,用于设定填充的透明度。如果同一个区域被多个fill_between()
填充,那么设定alpha
之后会让每一层都能显示出来。fill_between
沿着x
轴填充;fill_betweenx
沿着y
轴填充findobj(match=None, include_self=True)
:筛选出合适的artist
对象,返回一个列表。他会递归的向下搜寻match
指定过滤器。- 如果为
None
,则它选出axes
包含的所有artist
- 如果为一个函数,则函数接受一个
artist
参数,返回布尔值。所有返回True
的artist
被选中 - 如果是一个类,则返回属于该类的
artist
- 如果为
include_self
:如果为True
,则也检查自己
get_xx
函数:返回对应的属性值。有:get_alpha/get_anchor/get_animated/get_aspect/get_axis_bgcolor/
get_axisbelow/get_clip_box/get_clip_path/get_frame_on/get_gid
get_label/get_legend/get_lines/get_title/get_transform/get_visible
get_xaxis/get_xlabel/get_xlim/get_xscale/get_xticklabels/get_yaxis...
grid(b=None, which='major', axis='both', **kwargs)
:开启关闭网格。b
为布尔值,指定你想开启(True
)还是关闭网格which
:可以为'major'/'minor'/'both'
,指定你想开启哪个级别的网格axis
:可以为'x'/'y'/'both'
,指定你想在那个轴上开启网格- 其他的关键字参数设定了网格的线条类型。如
color/linestype/linewidth
还有一种简单用法,就是
axes.grid()
,此时表示:如果网格开启,则关闭。如果网格关闭,则开启。hexbin(x, y, C=None, gridsize=100, bins=None, xscale='linear', yscale='linear',
extent=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None,
edgecolors='none', reduce_C_function=<function mean>, mincnt=None,
marginals=False, **kwargs)
:绘制hexbin
。它用于同一个地方有很多点的情况,是六边形面元划分,是一种二元直方图。返回一个PolyCollection
对象。x/y
:一维数组,它们形状相同。它们给出了绘制六边形面元的点。C
:如果非None
,则它给出了坐标(x[i],y[i])
的count value
。它和x
长度相同,也是一维数组x/y/C
也可能是masked array
,此时只有unmasked
的点才被绘制reduce_C_function
:将坐标(x[i],y[i])
的count value
进行归并。因为同一个坐标可能被设定了多个count value
。而每个点根据其count value
来染色gridsize
:一个整数。它调整了六边形面元x
方向的尺寸,y
方向的尺寸自动选取。你也可以设定它为一个元组,同时调整x/y
方向的尺寸。它实际上给出的是x
轴可以放置的面元数量,因此该数值越大,六边形面元尺寸越小。bins
:- 如果为
None
,则每个六边形面元的颜色值直接对应了它的count value
- 如果为
'log'
,则每个六边形面元的颜色值对应了它的count value+1
的对数值 - 如果为一个整数, divide the counts in the specified number of bins, and color the hexagons accordingly
- 如果为一个整数序列,则the values of the lower bound of the bins to be used
- 如果为
xscale
:可以为'linear'/'log'
,设置了x
轴是线性还是对数scale
:可以为'linear'/'log'
,设置了y
轴是线性还是对数mincnt
:一个整数或者None
。它指定显示这一类的面元:面元包含的坐标点的数量超过mincnt
。对于面元包含坐标点数量少于mincnt
的,不显示。marginals
:一个布尔值。如果为True
,则沿着坐标轴绘制密度条。extent
:一个元组(left, right, bottom, top)
,等价于同时使用了set_xlim(left,right)+set_ylim(bottom,top)
。剩下的参数设定颜色和面元的属性。
hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False,
bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None,
log=False, color=None, label=None, stacked=False, **kwargs)
:绘制直方图。 其返回值为:- 如果绘制一个直方图,那么就是元组
(n, bins, patches)
,n
为频数/频率;bins
为直方图的各个分界点;patches
为每个直方图。 - 如果绘制多个直方图,那么就是元组
([n0, n1, ...], bins, [patches0, patches1,...])
参数为:
x
:一个序列或者一维数组,给定了直方图的数据bins
:一个整数。返回了bins+1
个分界点,将竖着划分成等分的bins
份。你可以传递一个序列,指定分界点,此时可以实现非等分的划分。range
:一个元组,给出了数据的上界和下界,在这之外的数据不被考虑。默认就是(x.min(),x.max())
normed
:布尔值,如果为True
,则返回的是数据出现的频率;否则返回的是数据出现的频数weights
:长度与x
相同的序列,给出了每个数据的权重cumulative
:布尔值。如果为True
,则计算的是累积频率/频数bottom
:一个整数或者整数序列或者None
,指定了直方图底部的纵坐标。默认为 0histtype
:直方图的类型。可以为'bar'/'barstacked'/'step'/'stepfilled'
align
:直方图每个小矩形的对齐方式。可以为'left'/'mid'/right'
orientation
:调整方向。可以为'horizontal'/'vertical'
。如果为水平则,使用barh
,同时bottom
参数设定的是左侧的横坐标值rwidth
:一个标量值,设定了直方图每个矩形的相对于默认值的宽度。如果直方图类型为step/stepfilled
,则忽略该参数。log
:布尔值。如果为True
:则x
轴使用对数坐标color
:颜色或者颜色序列,用于给直方图指定颜色label
:字符串或者字符串序列。给直方图指定标签stacked
:一个布尔值。如果为True
,则多个直方图会叠加在一起。- 其他参数设置了
Patch
的属性
- 如果绘制一个直方图,那么就是元组
hist2d(x, y, bins=10, range=None, normed=False, weights=None, cmin=None,
cmax=None, **kwargs)
:绘制二维直方图。其返回值为元组(counts, xedges, yedges, Image)
参数为:
x
:一个序列或者一维数组,给定了x
坐标序列y
:一个序列或者一维数组,给定了y
坐标序列bins
:- 如果为整数,则给出了两个维度上的区间数量
- 如果为
int,int
序列,则分别给出了x
区间数量和y
区间数量 - 如果给定了一个一维数组,则给出了
x_edges=y_edges=bins
- 如果为定了
array,array
,则分别给出了x_edges,y_edges
range
:一个(2,2)
的数组,给出了数据的上界和下界,在这之外的数据不被考虑。默认就是(x.min(),x.max())
normed
:布尔值,如果为True
,则返回的是数据出现的频率;否则返回的是数据出现的频数weights
:长度与x
相同的序列,给出了每个数据的权重cmin
:一个标量值。那些count
值小于cmin
的单元不被显示。同时返回的结果中,这些单元返回nan
cmax
:一个标量值。那些count
值大于cmax
的单元不被显示。同时返回的结果中,这些单元返回nan
其他参数设置了
pcolorfast()
属性
hlines(y, xmin, xmax, colors='k', linestyles='solid', label='', **kwargs)
:从xmin
到xmax
绘制一系列的水平线。这些水平线的纵坐标由y
提供。y
:水平线的纵坐标。如果为标量,则为一条水平;如果为序列,则为一系列水平线。数据坐标系xmin/xmax
:水平线的起点和终点的横坐标。如果是个标量,则所有的水平线公用。如果是序列,则每个水平线设置一个。数据坐标系linestyles
:指定线型。可以为一个字符串(所有水平线公用),或者字符串序列(每个水平线一个)。线型在'solid' | 'dashed' | 'dashdot' | 'dotted'
四者之一colors
:指定颜色。可以为一个颜色(所有水平线公用),或者颜色序列(每个水平线一个)。label
:一个字符串,指定标签。- 其他关键字参数设置
LineCollection
属性。
imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None,
vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None,
resample=None, url=None, **kwargs)
:绘制图片。返回一个AxesImage
对象X
:包含了图片的数据。其形状可以为:(n,m)
(灰度图),类型为float
(n,m,3)
(RGB
图),类型为float
(此时每个元素的值都在 0 和 1.0 之间),或者unit8
(n,m,4)
(RGBA
图),类型为float
(此时每个元素的值都在 0 和 1.0 之间),或者unit8
cmap
:一个Colormap
实例。默认由rc
的image.cmap
指定。如果X
是RGB/RGBA
,则忽略该参数aspect
:一个字符串,指定图片的缩放。可以为:'auto'
:缩放图片的宽高比,是的它匹配axes
'equal'
:当extent
参数为None
时,修改axes
的宽高比,使得它匹配图片;如果extent
参数不是None
,则修改axes
的宽高比来匹配extent
None
:默认由rc
的image.aspect
指定
interpolation
:一个字符串,指定插值方式。可以为'none', 'nearest', 'bilinear', 'bicubic',
'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom',
'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos'
norm
:一个Normalize
实例,用于将图片亮度正则化到0~1
。如果为None
,则采用normalize.norm
vmin/vmax
:用于辅助norm
进行正则化。如果你传入了一个norm
实例,则该参数忽略alpha
:浮点数,指定透明度origin
:可以为'upper'/'lower'
。图片的第一个像素X[0,0]
放置在坐标原点。'upper'
:横坐标向右,纵坐标向下'lower'
:横坐标向右,纵坐标向上
extent
:一个元组(left, right, bottom, top)
,等价于同时使用了set_xlim(left,right)+set_ylim(bottom,top)
shape
:一个元组(column,rows)
,用于rar buffer image
filternorm/filterrad
:用于过滤其他参数用于调整
Artist
属性
legend(*args, **kwargs)
:创建一个图例。最简单的方式:你首先创建一个
Axes
,然后在其中添加lines
,然后直接调用ax.legend()
即可。此时那些label
非空的线将被图例注释你也可以采用下面面向对象的方案:线创建
line
,然后调用line.set_label()
,然后调用ax.legend()
。此时的逻辑更清晰如果你不想让某个
line
被图例注释,则它的label
要么为空字符串,要么为以下划线开始。还有一种直接控制图例的方式:它直接显式指定了被注释的
line
和对应的label
xxxxxxxxxx
ax.legend((line1,line2,line3),('label1','label2','label3'))关键字参数:
loc
:指定了图例的位置。可以为整数或者字符串。可以是字符串'best'
/'upper right'
/'upper left'
/'lower left'
/'lower right'
/'right'
/'center left'
/'center right'
/'lower center'
/'upper center'
/'center'
,对应于整数的0~10
。你也可以指定坐标(x,y)
,其中(0,0)
是左下角,(1,1)
是右上角ncol
:一个整数,指定图例中有几列,默认为 1列prop
:一个字典,或者FontProperties
实例,可以指定图例中的字体属性。fontsize
:控制字体大小,可以为整数、浮点数(指定字体绝对大小),或者字符串'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'
numpoint
/scatterpoints
:图例上每个图例线的点数fancybox
:如果为True
,图例的边框采用圆角矩形framealpha
:一个浮点数,从0到 1,图例的透明度frameon
:一个布尔值,如果为True
,则绘制图例的背景框。否则不绘制。shadow
:如果为True
,图例添加背影ncol
:列数title
:图例的标题
locator_params(axis='both', tight=None, **kwargs)
:控制tick locator
axis
:一个字符串,指定控制那个轴。可以为'x'/'y'/'both'
。tight
:一个布尔值。它传递给autoscale_view()
- 其他关键字参数传递给
set_params()
方法
如果你想调整主轴上的刻度线的数量,可以使用
ax.locator_params(tight=True,nbins=4)
loglog(*args, **kwargs)
:绘制line
,但是将x
轴和y
轴都调整为对数坐标x
:数据的x
坐标y
:数据的y
坐标basex/basey
:一个大于 1 的标量,控制对数的底数subsx/subsy
:一个序列,给出了x/y
轴的子刻度的位置(数据坐标系)。默认为None
,此时子刻度是自动划分的nonposx/nonposy
:如果为'mask'
,则x/y
的负数或者零将被视作无效的数;如果为'clip'
,则x/y
的负数或者零将被视作一个非常小的正数(因为对数的自变量要大于零)- 剩下的参数将被作为
Line2D
的属性
margins(*args, **kw)
:设置Axes
的margin
。你可以通过ax.margins()
获取当前的margin
。 你也可以通过ax.margins(x=xmargin,y=ymargin)
来设置margin
。这两个参数的值是0~1
matshow(Z, **kwargs)
:将一个矩阵绘制成图片。Z
:一个形状为(n,m)
的数组- 其他参数见
imshow
minorticks_off()
:关闭次刻度线。minorticks_on()
:打开次刻度线。pcolor(*args, **kwargs)
:绘制一个pseudocolor plot
,返回一个Collection
实例。对于大型数组,它很慢,此时推荐使用pcolormesh()
。常用的方式为:
pcolor(C,*kwargs)
,此时C
为一个二维数组。也可以指定pcolor(X,Y,C,*kwargs)
。X/Y/C
都是二维数组,并且X
和Y
的尺寸比C
大。它将在四个点决定的矩形中填充颜色C[i,j]
:(X[i, j], Y[i, j])
,(X[i, j+1], Y[i, j+1])
,(X[i+1, j], Y[i+1, j])
,(X[i+1, j+1], Y[i+1, j+1])
。X/Y
也可以是一维的,但是首先会进行广播法则。关键字参数为:
cmap
:一个Colormap
实例。如果为None
,则使用rc
的设置edgecolors
:None
或者'none'
或者一个颜色或者一个颜色序列。用于设定边的颜色- 其他参数设置
PopyCollection
属性
pcolorfast(*args, **kwargs)
:用法和pcolor
相同,它是一个实验性质的,提供了一个更快的实现。pcolormesh(*args, **kwargs)
:作用和pcolor
相同。但是它是另一个实现方式,并且返回不同的对象,它返回的是QuadMesh
对象。它的速度更快。其参数和用法与pcolor
相同。edgecolors
:除了pcolor
的edgecolors
之外,还多了一个'face'
,表示使用与四边形背景色相同的颜色。
pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6,
shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True,
wedgeprops=None, textprops=None, center=(0, 0), frame=False)
:绘制饼状图。x
:数据序列。每一块饼的权重为x/sum(x)
;如果sum(x)<=1
,则x
已经代表了每一块饼的权重,此时并不会除以sum(x)
。饼状图从x
轴开始,逆时针绘制。explode
:如果不是None
,则它给出了每个饼的径向偏移量。该偏移量表示:径向偏移除以半径。colors
:给出了每一块饼的颜色。可以为None
或者颜色序列labels
:给出了每个饼的字符串标签。可以为None
或者字符串序列autopct
:它可以为一个字符串,可以指定每个饼的数值标签,但是该字符串是fmt%pct
,通过pct
参数格式化,pct
为饼的比重(自动提供)。也可以是一个可调用对象。pctdistance
:若autopct
为None
,则忽略之。否则就是数值标签的径向距离,它是个相对距离,相对于半径。labeldistance
:控制了饼的字符串标签的径向距离,它是个相对距离,相对于半径。shadow
:一个布尔值,如果为True
,则绘制带阴影的饼状图startangle
:如果不是None
,则它可控制了第一块饼与x
轴的夹角radius
:一个标量,控制了饼状图的半径。如果为None
,则默认为 1counterclock
:一个布尔值。如果为True
,则为逆时针方向;否则为顺时针排列wedgeprops
:一个字典,控制了每一块饼的某些属性,如线型textprops
:一个字典,控制了饼的文字的一些属性center
:一个二元的元组,指定了饼状图的中心frame
:一个布尔值,控制是否绘制axes frame
(也就是背后的数轴)。发现版本1.5.3
中,开启它是个Bug
,图形混乱。
为了显示好看,建议使用
ax.set_aspect(1)
将Axes
的长宽比设置为 1, 此时的饼状图是个圆形(否则为椭圆)。plot(*args, **kwargs)
:绘制line
或者marker
。他返回line
的列表。最简单的用法是:
plot(x,y)
,其中x
为数据点的横坐标,y
为数据点的纵坐标。此时采用默认的线型和颜色。- 你也可以设置线型和颜色为
plot(x,y,'bo')
:'b'
代表颜色为蓝色,'o'
代表使用小圆圈标记数据点。'bo'
称作plot format string
- 你也可以省略
x
:plot(y)
。此时隐含着x
等于[0,1,...len(y-1)]
- 如果
x/y
为二维数组,那么每一行作为一组line
来绘制 - 如果你想一次绘制多条线,可以用
plot(x1,y1,'b+',x2,y2,'b-',x3,y3,'bo')
控制
marker
的字符串可以为:'-'/'--'/'-.'/':'/'.'/','/'o'/'v'/'^'/'<'/'>'/'1'/'2'/'3'/'4'/
's'/'p'/'*'/'h'/'H'/'+'/'x'/'D'/'d'/'|'/'_'
控制颜色的字符串可以为:
'b'/'g'/'r'/'c'/'m'/'y'/'k'/'w'
;你也可以指定它们的全名,如'red'
;或者指定十六进制字符串'#00ff00
;或者指定一个RGB/RGBA
元组:(0,1,0)/(0,1,0,1)
。默认情况下,不同的线采用不同的线型,它由
rc
的axes.prop_cycle
参数控制,并且是循环使用。这些参数都可以单独地作为关键字参数来设置。如果一个plot
绘制了多条线,则其参数对所有的线起作用。这些关键字全部用于设定Line2D
的属性。- 你也可以设置线型和颜色为
plot_date(x, y, fmt='o', tz=None, xdate=True, ydate=False, **kwargs)
:绘制日期相关的数据。它类似于plot()
方法,但是plot_data
的x
轴或者y
轴可能是日期相关的数据。x/y
:待绘制的点的坐标序列。如果是日期序列,则代表了从0001-01-01 UTC
以来的天数(浮点数)(它映射到整数 1)。日期必须大于等于 0(1代表第一天),且日期跨度大于一个月(31天)fmt
:plot format string
,如bo
tz
:指定时区。可以为时区字符串,也可以为tzinfo
实例或者None
xdate
:一个布尔值。如果为True
,则x
轴为时间序列ydate
:一个布尔值。如果为True
,则y
轴为时间序列- 其他参数用于设定
Line2D
的属性
注意:
plot_date()
使用默认的dates.AutoDateLocator/dates.AutoDateFormatter
。如果你希望使用自定义的,则你需要在调用plot_date()
之后调用方法来设置date ticker/date formatter
设置时区:
xxxxxxxxxx
from datetime import timezone,timedelta ax.plot_date(X,Y,tz=timezone(+timedelta(hours=23)))设置日期格式化和位置:
xxxxxxxxxx
from matplotlib.dates import AutoDateLocator,AutoDateFormatter,DateFormatter autoloc = AutoDateLocator() #默认的 formatter autofmt = AutoDateFormatter() #默认的 locator myfmt = DateFormatter('%Y-%m-%d %H:%M:%S')#自定义的formatter,使用`strftime()`的格式化方式 ax.xaxis.set_major_locator(autodates) #设置时间间隔 ax.xaxis.set_major_formatter(myfmt) #设置时间显示格式ax.xaxis.set_major_locator()
设置x
轴的主刻度的locator
ax.xaxis.set_major_formatter()
设置x
轴的主刻度的formatter
DateFormatter
:初始化字符串的解释与strftime()
相同- 常见的一些
DateLocator
有:MinuteLocator
、HourLocator
、DayLocator
、WeekdayLocator
、MonthLocator
、YearLocator
、AutoDateLocator
properties()
:返回一个字典,该字典中包含了axes
中的所有属性的键值对。quiver(*args, **kw)
:创建一个二维的场向量。常见的调用方式有:
quiver(U,V,**kw)
、quiver(U,V,C,**kw)
、quiver(X,Y,U,V,C,**kw)
、quiver(X,Y,U,V,C,**kw)
。其中U/V
为向量的x
轴分量和y
轴分量。X/Y
为绘制向量的起点坐标。C
用于指定每个箭头的颜色。- 如果为指定
X/Y
,则默认每个向量的起点从每个单元格生成。
关键字参数有:
units
:一个字符串,指定箭头的单位。除了箭头的长度以外,其他的度量都是以该单位为准。可以为:'width'/'height'
:以axes
的宽度/高度为单位'dots'/'inches'
:以像素点/英寸为单位'x'/'y'/'xy'
:以数据坐标系下的X/Y
为单位,而xy'
表示数据坐标系下的单位矩形的对角线为单位。
angles
:指定向量的角度。正方形可能因为X/Y
轴缩放尺度不同而显示为长方形。可以为'uv'
,表示只采用U,V
的值计算;可以为'xy'
,表示角度计算时考虑X
轴与Y
轴的缩放尺度。scale
:一个浮点数,决定缩放比例。它和scale_units
决定了箭头的全长。假如向量的长度计算得到为 10,那么假如scale
为 2, 而scale_units
为dots
,那么该向量的长度为5
像素点。scale_units
:一个字符串,指定缩放比例的单位。可以为'width'/'height'/'dots'/'inches'/'x'/'y'/'xy'
width
:一个标量,指定箭头的宽度,单位由units
参数指定headwitdh
:一个标量,指定箭头的头部的宽度,单位由units
参数指定headlength
:一个标量,指定箭头的头部的长度,单位由units
参数指定headaxislength
:一个标量,指定的是箭头的头部的左半边小三角与箭杆的相交的长度。单位由units
参数指定minshaft
:一个标量,Length below which arrow scales, in units of head length. 。不要设置成小于 1,否则图形很难看minlength
:一个标量,指定所有箭头的最短长度(单位由units
参数指定)。如果有的箭头长度小于它,则绘制成一个点。pivot
:一个字符串,控制了箭头旋转的中心。可以为'tail'/'mid'/'middle'/'tip'
。tip
表示箭头的尖尖。color
:给出了箭头的颜色。如果给出了C
参数,则该参数被忽略。其他参数控制了
PolyCollection
的属性
- 如果为指定
quiverkey(*args, **kw)
:给quiver
设置key
。常用的调用方式为:quiverkey(Q,X,Y,U,label,**kw)
。Q
:一个Quiver
实例,由quiver()
返回X/Y
:key
放置的位置,都是标量U
:key
的长度,都是标量label
:一个字符串,指定了标记。coordinates
:一个字符串,指定了X/Y
的坐标系。'axes'
:axes
坐标系,(0,0)
为axes
的左下角,(1,1)
为axes
的右上角。'figure'
:figure
坐标系,(0,0)
为figure
的左下角,(1,1)
为figure
的右上角。'data'
:data
坐标系'inches'
:为figure
坐标系,但是以像素点为基准。(0,0)
为左下角
color
:重写了Q
的color
labelpos
:放置标记的位置,可以为'N'/'S'/'E'/'W'
labelsep
:给出了标记和箭头的距离,单位为英寸labelcolor
:给出了标记的颜色fontproperties
:一个字典或者FontProperties
实例,设置了标记的字体。其他的关键字参数用于重写
quiver
的一些属性。
remove()
:从figure
中移除本axes
。除非重绘figure
,否则看不出来效果。scatter(x, y, s=20, c=None, marker='o', cmap=None, norm=None, vmin=None, vmax=None,
alpha=None, linewidths=None, verts=None, edgecolors=None, **kwargs)
:绘制散点图。返回一个PathCollection
实例。x/y
:数据的x
坐标和y
坐标,要求它们形状为(n,)
s
:指定散点的尺寸,可以为标量,也可以为一个长度为n
的序列c
:指定散点的颜色。可以为一个颜色,或者颜色序列marker
:指定散点的类型,默认为'o'
。可以为'.',',','o','v','^','<','>','1','2','3','4','s','p',
'*','h','H','+','x','D','d','|','_','None',None,' ','','$...$'
之一。也可以为一个Path
实例。也可以是一个元组(numsided,style,angle)
:numsided
指定了边的数量style
:可以为0
(正多边形);1
(星星状的符号);2
(一个*
);3
(一个圆,此时numsided,angle
被忽略)angle
:指定了散点旋转的角度(按照角度制而不是弧度制)
cmap
:设定一个colormap
。可以是Colormap
实例,或者它的名字。只有当c
参数为一列浮点数时,有效norm
:一个Normalize
实例,用于将亮度调整到0~1
vmin,vmax
:一个标量,用于辅助默认的norm
调整亮度(如果你传入了一个Normalize
实例给norm
,则该参数忽略)alpha
:一个标量,设置透明度linewidths
:一个标量或者序列,设置线宽edgecolors
:设定边线的颜色,可以为一个颜色,或者颜色序列其他参数用于设定
Collection
参数
semilogx(*args, **kwargs)
:它类似plot()
,只是将x
轴设置为对数坐标。除了多了下面的参数外,其他设置与plot()
一样。basex
:一个大于 1 的标量,用于设置对数的底数subx
:一个序列或者None
。用于设置x
轴的主要刻度值。默认采用自动设定nonposx
:如果为'mask'
,则x
的负数或者零将被视作无效的数;如果为'clip'
,则x
的负数或者零将被视作一个非常小的正数(因为对数的自变量要大于零)
semilogy(*args, **kwargs)
:它类似plot()
,只是将y
轴设置为对数坐标。除了多了下面的参数外,其他设置与plot()
一样。basey
:一个大于 1 的标量,用于设置对数的底数suby
:一个序列或者None
。用于设置y
轴的主要刻度值。默认采用自动设定nonposy
:如果为'mask'
,则y
的负数或者零将被视作无效的数;如果为'clip'
,则y
的负数或者零将被视作一个非常小的正数(因为对数的自变量要大于零)
spy(Z, precision=0, marker=None, markersize=None, aspect='equal',
origin='upper', **kwargs)
:绘制矩阵中的非零值。Z
:待绘制的二维矩阵,它和precision
决定了绘制区域。坐标点(i,j)
对应于Z[j,i]
,即列对应于x
轴。precision
:只有Z
中的那些大于precision
的值才被绘制marker
:用它来表示Z
中的非零值markersize
:marker
的大小。aspect
:高宽比origin
:参考imshow
的origin
stem(*args, **kwargs)
:绘制stem
图。其调用方式为:xxxxxxxxxx
stem(y, linefmt='b-', markerfmt='bo', basefmt='r-') stem(x, y, linefmt='b-', markerfmt='bo', basefmt='r-')xxxxxxxxxx
其中:`linefmt`决定了垂线的格式。`markerfmt`决定了每个`fmt`的格式。`x`决定了每条垂线的位置(如果未提供,则为`[0,1,...len(y)-1]`)。`y`序列决定了每条垂线的高度。 `basefmt`决定了位于`y=0`这条基准直线的格式。step(x, y, *args, **kwargs)
:绘制阶梯图。调用方式为step(x, y, *args, **kwargs)
x/y
:都是一维序列,并且假设x
为单调递增的(如果不满足,也不报错)where
:指定分步类型。可以为'pre'/'post'/'mid'
- 其他参数与
plot()
相同
streamplot(x, y, u, v, density=1, linewidth=None, color=None, cmap=None, norm=None,
arrowsize=1, arrowstyle='-|>', minlength=0.1,
transform=None, zorder=1, start_points=None)
:绘制向量场流线。x/y
:一维数组,给出了网格的坐标u/v
:二维数组,给出了每个网格的向量。其行数等于y
的长度,列数等于x
的长度density
:一个浮点数或者浮点数的二元元组。控制了绘制向量场的密度。linewidth
:标量或者二维数组,给出了每个向量箭头的线宽color
:标量或者二维数组,给出了每个向量箭头的颜色cmap
:一个Colormap
实例。当color
是一个二维数组时,它配合使用,给出了每个向量箭头的颜色norm
:一个Normalize
实例。当color
是一个二维数组时,它配合使用,将颜色亮度调整为0~1
arrowsize
:一个浮点数,给出了箭头缩放比例arrowstyle
:一个字符串,给出了箭头的类型。minlength
:一个浮点数,限定了最小的向量长度start_points
:它是一个N*2
的数组,N
流线起点的个数,给出了流线起始点的位置
table(**kwargs)
:添加一个表格,返回一个table.Table
实例。调用方式为:xxxxxxxxxx
table(cellText=None, cellColours=None, cellLoc='right', colWidths=None, rowLabels=None, rowColours=None, rowLoc='left', colLabels=None, colColours=None, colLoc='center', loc='bottom', bbox=None)text(x, y, s, fontdict=None, withdash=False, **kwargs)
:添加文本,返回一个Text
实例。s
:一个字符串,被添加的文本x/y
:一个标量,文本被添加的坐标fontdict
:一个字典,给出了字体属性。withdash
:一个布尔值。如果为True
,则创建一个TextWithDash
实例而不是Text
实例。- 其他参数用于控制
Text
属性
tick_params(axis='both', **kwargs)
:控制tick
和tick label
。axis
:一个字符串,指定要控制那个轴。可以为'x'/'y'/'both'
reset
:一个布尔值。如果为True
,那么在进行处理其他关键字参数之前,先恢复默认值。默认为False
which
:一个字符串,指定控制主刻度还是次刻度。可以为'major'/'minor'/'both'
direction
:一个字符串,控制将刻度放置在axes
里面还是外面。可以为'in'/'out'/'inout'
length
:一个标量值。给出了每个刻度线的长度(就是那个小竖线),单位为像素点width
:一个标量值。给出了每个刻度线的宽度(就是那个小竖线),单位为像素点color
:给出刻度线的颜色pad
:一个标量值,给出了刻度线和刻度label
之间的距离,单位为像素点labelsize
:一个标量值,给出了刻度label
的字体大小。可以为数值,单位为像素点。也可以为字符串,如large'
labelcolor
:给出了刻度label
的颜色colors
:同时调整刻度线的颜色和刻度label
的颜色bottom/top/left/right
:一个布尔值或者字符串'on'/'off'
。控制是否绘制对应位置的刻度线labelbottom/labeltop/labelleft/labelright
:一个布尔值或者字符串'on'/'off'
。控制是否绘制对应位置的刻度label
vlines(x, ymin, ymax, colors='k', linestyles='solid', label='', **kwargs)
:绘制一群垂直线。x
:标量或者一维数组,给出了垂线的位置ymin/ymax
:给出了垂线的起始和终止位置。如果是个标量,则所有垂线共享该值colors
:给出垂线的颜色linestyles
:给出了垂线的线型label
:一个字符串- 其他关键字参数设置
LineCollection
参数
xcorr(x, y, normed=True, detrend=<function detrend_none>, usevlines=True,
maxlags=10, **kwargs)
:绘制互相关图。参数解释参考acorr()
自相关函数。
c. Axis类
matplotlib.axis.Axis
实例处理tick line
、grid line
、tick label
以及axis label
的绘制,它包括坐标轴上的刻度线、刻度label
、坐标网格、坐标轴标题。通常你可以独立的配置y
轴的左边刻度以及右边的刻度,也可以独立地配置x
轴的上边刻度以及下边的刻度。- 刻度包括主刻度和次刻度,它们都是
Tick
刻度对象。
- 刻度包括主刻度和次刻度,它们都是
Axis
也存储了数据用于内部的缩放以及自适应处理。它还有Locator
实例和Formatter
实例用于控制刻度线的位置以及刻度label
。每个
Axis
都有一个.label
属性,也有主刻度列表和次刻度列表。这些tick
是XTick
和YTick
的实例,他们存放着实际的line primitive
以及text primitive
来渲染刻度线以及刻度文本。刻度是动态创建的,只有在需要创建的时候才创建(比如缩放的时候)。
Axis
也提供了一些辅助方法来获取刻度文本、刻度线位置等等:Axis.get_major_ticks()
:获取主刻度列表(一个Tick
对象的列表)Axis.get_minor_ticks()
:获取次刻度列表(一个Tick
对象的列表)Axis.get_majorticklabels()
:获取主刻度label
列表(一个Text
对象的列表)Axis.get_majorticklines()
:获取主刻度线(一个Line2D
对象的列表)Axis.get_ticklocs()
:获取刻度线位置的列表。 可以通过minor=True|False
关键字参数控制输出minor
还是major
的tick location
。Axis.get_ticklabels()
:获取刻度label
列表(一个Text
实例的列表)。 可以通过minor=True|False
关键字参数控制输出minor
还是major
的tick label
。Axis.get_ticklines()
:获取刻度线列表(一个Line2D
实例的列表)。 可以通过minor=True|False
关键字参数控制输出minor
还是major
的tick line
。Axis.get_scale()
:获取坐标轴的缩放属性,如'log'
或者'linear'
Axis.get_view_interval()
:获取内部的axis view limits
实例Axis.get_data_interval()
:获取内部的axis data limits
实例Axis.get_gridlines()
:获取grid line
的列表Axis.get_label()
:获取axis label
(一个Text
实例)Axis.get_label_text()
:获取axis label
的字符串Axis.get_major_locator()
:获取major tick locator
(一个matplotlib.ticker.Locator
实例)Axis.get_minor_locator()
:获取minor tick locator
(一个matplotlib.ticker.Locator
实例)Axis.get_major_formatter()
:获取major tick formatter
(一个matplotlib.ticker.Formatter
实例)Axis.get_minor_formatter()
:获取minor tick formatter
(一个matplotlib.ticker.Formatter
实例)Axis.grid(b=None,which='major',**kwargs)
:一个开关,用于控制major
或者minor
的tick
的on|off
Axis 方法
axis_date(tz=None)
:将x
轴视作时间轴cla()
:清除axis
get_xxx()
方法:参考前面叙述的内容set_xxx()
方法:对应的设置方法。
获取刻度线或者刻度
label
之后,可以设置其各种属性,如可以对刻度label
旋转 30度:xxxxxxxxxx
for line in axis.get_majorticklabels(): line.set_rotation(30)
d. Tick类
matplotlib.axis.Tick
类是从Figure
-->Axes
-->Tick
这个container
体系中最末端的container
。Tick
容纳了tick
、grid line
以及tick
对应的label
。所有的这些都可以通过Tick
的属性获取:Tick.tick1line
:一个Line2D
实例Tick.tick2line
:一个Line2D
实例Tick.gridline
:一个Line2D
实例Tick.label1
:一个Text
实例Tick.label2
:一个Text
实例Tick.gridOn
:一个布尔值,决定了是否绘制tickline
Tick.tick1On
:一个布尔值,决定了是否绘制1st tickline
Tick.tick2On
:一个布尔值,决定了是否绘制2nd tickline
Tick.label1On
:一个布尔值,决定了是否绘制1st tick label
Tick.label2On
:一个布尔值,决定了是否绘制2nd tick label
y
轴分为左右两个,因此tick1*
对应左侧的轴;tick2*
对应右侧的轴。x
轴分为上下两个,因此tick1*
对应下侧的轴;tick2*
对应上侧的轴。方法有:
get_loc()
:以标量的形式返回Tick
的坐标get_pad()
:返回Tick
的label
和刻度线之间的距离(单位为像素点)set_label(s)/set_label1(s)/set_label2(s)
:设置label
set_pad(val)
:设置Tick
的label
和刻度线之间的距离(单位为像素点)
2. primitive
a. Line2D类
matplotlib.lines.Line2D
类是matplotlib
中的曲线类(基类是matplotlib.artist.Artist
),它可以有各种各样的颜色、类型、以及标注等等。它的构造函数为:xxxxxxxxxx
Line2D(xdata, ydata, linewidth=None, linestyle=None, color=None, marker=None, markersize=None, markeredgewidth =None, markeredgecolor=None, markerfacecolor =None, markerfacecoloralt=’none’, fillstyle=None, antialiased=None, dash_capstyle=None, solid_capstyle=None, dash_joinstyle=None, solid_joinstyle=None, pickradius=5, drawstyle=None, markevery=None, **kwargs)这些关键字参数都是
Line2D
的属性。其属性有:
继承自
Artist
基类的属性:.alpha
、.animated
、.axes
、.clip_box
、..clip_on
、.clip_path
、.contains
、.figure
、.gid
、.label
、.picker
、.transform
、.url
、.visible
、.zorder
.antialiased
或者.aa
属性:一个布尔值。如果为True
则表示线条是抗锯齿处理的.color
或者.c
属性:一个matplotlib color
值,表示线条的颜色,.dash_capstyle
属性:为'butt' or 'round' or 'projecting'
,表示虚线头端类型.dash_joinstyle
属性:为'miter' or 'round' or 'bevel'
,表示虚线连接处类型.dashes
属性:一个数值序列,表示虚线的实部、虚部的尺寸。如果为(None,None)
则虚线成为实线.drawstyle
属性:为'default'or'steps'or'step-pre'or'step-mid'or'step-post'
,表示曲线类型。'default'
:点之间以直线连接'steps*'
:绘制阶梯图。其中steps
等价于steps-pre
,是为了保持兼容旧代码
.fillstyle
属性:为'full'or'left'or'right'or'bottom'or'top'or'none'
表示marker
的填充类型。'full'
:填充整个marker
none
:不填充marker
- 其他值:表示填充一半
marker
.linestyle
或者ls
属性:指定线型,可以为以下值:'-'
或者'solid'
:表示实线'--'
或者dashed
:表示虚线'-.'
或者dash_dot
:表示点划线':'
或者'dotted'
:表示点线'None'
或者' '
或者''
:表示没有线条(不画线)
.linewidth
或者lw
属性:为浮点值,表示线条宽度.marker
属性:可以为一系列的字符串,如'.'、','、'o'....
,表示线条的marker
.markeredgecolor
或者.mec
属性:可以为matplotlib color
,表示marker
的边的颜色.markeredgewidth
或者.mew
属性:可以为浮点数,表示marker
边的宽度.markerfacecolor
或者.mfc
属性:可以为matplotlib color
,表示marker
的前景色.markerfacecoloralt
或者.mfcalt
属性:可以为matplotlib color
,表示marker
的可选前景色.markersize
或者.ms
属性:可以为浮点数,表示marker
的大小.markevery
属性:指定每隔多少个点绘制一个marker
,可以为以下值:None
:表示每个点都绘制marker
N
:表示每隔N
个点绘制marker
,从0开始(start,N)
:表示每隔N
个点绘制marker
,从start
开始[i,j,m,n]
:只有点i,j,m,n
的marker
绘制- ...其他值参考文档
.pickradius
属性:浮点值,表示pick radius
.solid_capstyle
属性:可以为'butt'、'round'、'projecting'
,表示实线的头端类型.sold_joinstyle
属性:可以为'miter'、'round'、'bevel'
,表示实线连接处的类型.xdata
属性:可以为一维的numpy.array
,表示x
轴数据.ydata
属性:可以为一维的numpy.array
,表示y
轴数据
b. Text类
matplotlib.text.Text
类是绘制文字的类(基类是matplotlib.artist.Artist
)。它的构造函数为:xxxxxxxxxx
Text(x=0, y=0, text='', color=None, verticalalignment='baseline', horizontalalignment=’left’, multialignment=None, fontproperties =None, rotation=None, linespacing=None, rotation_ mode=None, usetex=None, wrap=False, **kwargs)这些关键字参数也是属性。其属性有:
继承自
Artist
基类的属性:.alpha
、.animated
、.axes
、.clip_box
、..clip_on
、.clip_path
、.contains
、.figure
、.gid
、.label
、.picker
、.transform
、.url
、.visible
、.zorder
.backgroundcolor
属性:背景色,可以为任何matplotlib color
.bbox
属性:文本框的边框。其值是FancyBboxPatch
类的属性字典。.color
属性:字体颜色,可以为任何matplotlib color
.family
或者.name
或者.fontfamily
或者.fontname
属性:字体的名字。可以是string
或者string list
(表示可以为若干个名字,优先级依次递减)。string
必须是一个真实字体的名字,或者一个字体的class name
。.fontproperties
或者.font_properties
属性:字体的属性,值是一个matplotlib.font_manager.FontProperties
实例(该实例一次性设置字体的很多属性,比如字体类型、字体名字、字体大小、宽度、...).horizontalalignment
或者.ha
属性:水平对齐方式,可以为'center'、'right'、'left'
.linespacing
属性:为浮点数,单位为font size
,表示行间距.multialignment
属性:multiline text
对齐方式,可以为'left'、'right'、'center'
.position
属性:为一个元组(x,y)
,表示文本框的位置.rotation
属性:字体旋转角度。可以为下列值:- 浮点数,表示角度
'vertical'、'horizontal'
.rotation_mode
属性:旋转模式。可以为下列值:'anchor'
:文本首先对齐,然后根据对齐点来旋转None
:文本先旋转,再对齐
.size
或者.fontsize
属性:字体大小。可以为下列值:- 浮点值,表示字体大小
'xx-small'、'x-small'、'small'、'medium'、'large'、'x-large'、'xx-large'
.stretch
或者.fontstretch
属性:字体沿水平方向的拉伸。可以为下列值:- 整数,在[0---1000]之间
'ultra-condensed'
、'extra-condensed'
、'condensed'
、'semi-condensed'
、'normal'
、'semi-expanded'
、'expanded'
、'extra-expanded'
、'ultra-expanded'
.style
或者.fontstyle
属性:字体样式,可以为'normal'、'italic'、'oblique'
.text
属性:文本字符串,可以为任意字符串(他可以包含'\n'
换行符或者LATEX
语法).variant
或者.fontvariant
属性:表示字体形变,可以为下列值:'normal'、'small-caps'
.verticalalignment
或者.ma
或者.va
属性:表示文本的垂直对齐,可以为下列值:'center'、'top'、'bottom'、'baseline'
.weight
或者.fontweight
属性:设置字体的weight
,可以为下列值:- 一个整数值,在[0---1000]之间
'ultralight'
、'light'
、'normal'
、'regular'
、'book
'、'medium'
、'roman'
、'semibold'
、'demibold'
、'demi'
、'bold'
、'heavy'
、'extrabold'
、'black'
.x
属性:一个浮点值,表示文本框位置的x
值.y
属性:一个浮点值,表示文本框位置的y
值
c. Annotation类
matplotlib.text.Annotation
类是图表中的图式,它是一个带箭头的文本框,用于解说图表中的图形。它的基类是matplotlib.text.Text
和matplotlib.text._AnnotationBase
。其构造函数为:xxxxxxxxxx
Annotation(s, xy, xytext=None, xycoords=’data’, textcoords=None, arrowprops =None, annotation_clip=None, **kwargs)在位置
xytext
处放置一个文本框,该文本框用于解释点xy
,文本框的文本为s
。
s
:文本框的文本字符串xy
:被解释的点的坐标xytext
:文本框放置的位置。如果为None
,则默认取xy
xycoords
:xy
坐标系,默认取'data'
坐标系(即xy
是数据坐标系中的点)。可以为以下值:'figure points'
:从figure
左下角开始的点'figure pixesl'
:从figure
左下角开始的像素值'figure fraction'
:(0,0)
代表figure
的左下角,(1,1)
代表figure
的右上角'axes points'
:从axes
左下角开始的点'axes pixels'
:从axes
左下角开始的像素'axes fraction'
:(0,0)
代表axes
的左下角,(1,1)
代表axes
的右上角'data'
:使用被标注对象的坐标系'offset points'
:指定从xy
的偏移点'polar'
:极坐标系
textcoords
:文本框坐标系(即xytext
是文本坐标系中的点),默认等于xycoords
arrowprops
:指定文本框和被解释的点之间的箭头。如果不是None
,则是一个字典,该字典设定了matplotlib.lines.Line2D
的属性。- 如果该字典有一个
arrowstyle
属性,则该键对应的值也是一个字典,创建一个FancyArrowsPatch
实例,实例属性由该字典指定。 - 如果该字典没有
arrowstyle
属性,则创建一个YAArrow
实例,
- 如果该字典有一个
annotation_clip
:控制超出axes
区域的annotation
的显示。如果为True
则annotation
只显示位于axes
区域内的内容。额外的关键字参数全部是设置
Text
的属性
d. Legend
matplotlib.legend.Legend
是图例类,它的基类是matplotlib.artist.Artist
。其构造函数为:xxxxxxxxxx
Legend(parent, handles, labels, loc=None, numpoints=None, markerscale =None, markerfirst=True, scatterpoints=None, scatteryoffsets=None, prop=None, fontsize=None, borderpad =None, labelspacing=None, handlelength=None, handleheight=None, handletextpad=None, borderaxespad =None, columnspacing=None, ncol=1, mode=None, fancybox=None, shadow=None, title=None, framealpha =None, bbox_to_anchor=None, bbox_transform=None, frameon=None, handler_map=None)其关键字参数为:
parent
:持有该legend
的artist
loc
:图例的位置。其值可以为字符串或者数字:best
或0:自动计算upper right
或1: 右上角upper left
或2:上角lower left
或3:下角lower right
或4:右下角right
或5:右边center left
或6:中间偏左center right
或7:中间偏右lower center
或8:中间底部upper center
或9:中间顶部center
或10:正中央
handle
:一个artist
列表,添加这些artist
到legend
中lebels
:一个字符串列表添加到legend
中prop
:字体属性fontsize
: 字体大小(只有prop
未设置时有效)markerscale
:marker
的缩放比例(相对于原始大小)markerfirst
: 如果为True
,则marker
放在label
左侧;否则marker
放在label
右侧numpoints
: the number of points in the legend for linescatterpoints
: the number of points in the legend for scatter plotscatteryoffsets
: a list of offsets for scatter symbols in legendframeon
: if True, draw a frame around the legend. If None, use rcfancybox
: if True, draw a frame with a round fancybox. If None, use rcshadow
: if True, draw a shadow behind legendframealpha
: If not None, alpha channel for the frame.ncol
: number of columnsborderpad
: the fractional whitespace inside the legend borderlabelspacing
: the vertical space between the legend entrieshandlelength
: the length of the legend handleshandleheight
: the height of the legend handleshandletextpad
: the pad between the legend handle and textborderaxespad
: the pad between the axes and legend bordercolumnspacing
:the spacing between columnstitle
: 图例的标题bbox_to_anchor
: the bbox that the legend will be anchored.bbox_transform
: the transform for the bbox. transAxes if Noneloc a location code其他关键字参数用于设置属性
属性为:
- 继承自
Artist
基类的属性:.alpha
、.animated
、.axes
、.clip_box
、..clip_on
、.clip_path
、.contains
、.figure
、.gid
、.label
、.picker
、.transform
、.url
、.visible
、.zorder
e. Patch类
matplotlib.patches.Patch
类是二维图形类。它的基类是matplotlib.artist.Artist
。其构造函数为:xxxxxxxxxx
Patch(edgecolor=None, facecolor=None, color=None, linewidth=None, linestyle=None, antialiased=None, hatch=None, fill=True, capstyle=None, joinstyle=None, **kwargs)参数为:
edgecolor
:可以为matplotlib color
,表示边线条的颜色,若为none
则表示无颜色facecolor
:可以为matplotlib color
,表示前景色,若为none
则表示无颜色color
可以为matplotlib color
,表示边线条和前景色的颜色。linewidth
:为浮点数,表示线条宽度linestyle
:指定线型,可以为以下值:'-'
或者'solid'
:表示实线'--'
或者dashed
:表示虚线'-.'
或者dash_dot
:表示点划线':'
或者'dotted'
:表示点线'None'
或者' '
或者''
:表示没有线条(不画线)
antialiased
:一个布尔值。如果为True
则表示线条是抗锯齿处理的hatch
:设置hatching pattern
,可以为下列的值:'\'
、'|'
、'-'
、'+'
、'x'
、'o'
、'0'
、'.'
、'*'
fill
:为布尔值。如果为True
则填充图形,否则不填充capstyle
:为'butt' or 'round' or 'projecting'
,表示线条头端类型joinstyle
:可以为'miter'、'round'、'bevel'
,表示矩形线条接头类型其他关键字参数用于设置属性
如果
edgecolor, facecolor, linewidth, or antialiased
为None
则这些值从rc params
中读取
属性如下:
继承自
Artist
基类的属性:.alpha
、.animated
、.axes
、.clip_box
、..clip_on
、.clip_path
、.contains
、.figure
、.gid
、.label
、path_effects
、.picker
、.transform
、.url
、.visible
、.zorder
.antialiased
或者.aa
属性:一个布尔值。如果为True
则表示线条是抗锯齿处理的.capstyle
属性:为'butt' or 'round' or 'projecting'
,表示线条头端类型.color
属性:可以为matplotlib color
,表示边线条和前景色的颜色。.edgecolor
或者.ec
属性:可以为matplotlib color
,表示边线条的颜色,若为none
则表示无颜色.facecolor
或者.fc
属性:可以为matplotlib color
,表示前景色,若为none
则表示无颜色.fill
属性:为布尔值。如果为True
则填充图形,否则不填充.hatch
属性:设置hatching pattern
,可以为下列的值:'\'
、'|'
、'-'
、'+'
、'x'
、'o'
、'0'
、'.'
、'*'
.joinstyle
属性:可以为'miter'、'round'、'bevel'
,表示矩形线条接头类型.linestyle
或者.ls
属性:指定线型,可以为以下值:'-'
或者'solid'
:表示实线'--'
或者dashed
:表示虚线'-.'
或者dash_dot
:表示点划线':'
或者'dotted'
:表示点线'None'
或者' '
或者''
:表示没有线条(不画线)
.linewidth
或者.lw
属性:为浮点数,表示线条宽度
f. Rectangle 类
matplotlib.patches.Rectangle
类是矩形类(基类是matplotlib.patches.Patch
),其构造函数为:Rectangle(xy,width,height,angle=0.0,**kwargs)
。 参数为:xy
:矩形左下角坐标width
:矩形宽度height
:矩形高度- 其他关键字参数用于设置属性
其属性有:
- 继承自
Artist
基类的属性:.alpha
、.animated
、.axes
、.clip_box
、..clip_on
、.clip_path
、.contains
、.figure
、.gid
、.label
、.picker
、.transform
、.url
、.visible
、.zorder
- 继承自
Patch
基类的属性:.antialiased
或者.aa
、.capstyle
、.color
、.edgecolor
或者.ec
、.facecolor
或者.fc
、.fill
、.hatch
、.joinstyle
、.linestyle
或者.ls
、.linewidth
或者.lw
属性
g. Polygon类
matplotlib.patches.Polygon
类是多边形类。其基类是matplotlib.patches.Patch
。其构造函数为:Polygon(xy, closed=True, **kwargs)
。参数为:xy
是一个N×2
的numpy array
,为多边形的顶点。closed
为True
则指定多边形将起点和终点重合从而显式关闭多边形。- 其他关键字参数用于设置属性
Polygon
的属性有:- 继承自
Artist
基类的属性:.alpha
、.animated
、.axes
、.clip_box
、..clip_on
、.clip_path
、.contains
、.figure
、.gid
、.label
、.picker
、.transform
、.url
、.visible
、.zorder
- 继承自
Patch
基类的属性:.antialiased
或者.aa
、.capstyle
、.color
、.edgecolor
或者.ec
、.facecolor
或者.fc
、.fill
、.hatch
、.joinstyle
、.linestyle
或者.ls
、.linewidth
或者.lw
属性
h. PolyCollection类
matplotlib.collections.PolyCollection
是多边形集合类,其基类是matplotlib.collections._CollectionWithSizes
。它的构造函数为:PolyCollection(verts, sizes=None, closed=True, **kwargs)
。其关键字参数为:
verts
:一个顶点序列。每个顶点都由xy元组
或者xy数组
组成sizes
:一个浮点数序列,依次指定每个顶点正方形的边长。如果序列长度小于顶点长度,则循环从序列头部再开始 挑选closed
:如果为True
,则显式封闭多边形edgecolors
:collection
的边的颜色- 其他关键字参数用于设置属性
下面为属性:
- 继承自
Artist
基类的属性:.alpha
、.animated
、.axes
、.clip_box
、..clip_on
、.clip_path
、.contains
、.figure
、.gid
、.label
、.picker
、.transform
、.url
、.visible
、.zorder
.facecolors
:collection
的前景色.linewidths
:collection
的边线宽.antialiaseds
:抗锯齿属性,可以为True
或者False
.offsets
: 设置collection
的偏移.norm
: 归一化对象.cmap
:color map
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论