20分钟
Axes 的一些方法
cla()/clear():清除Axesclabel(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和下errorxerr:指定x的error。如果为标量,则每个点都是相同的error;如果为一维向量,则依次给出了每个点的error。如果是个二维向量,则依次给出了每个点的左error和右errorfmt:可以为空字符串,或者'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关键字参数:一个布尔值,确定是否封闭多边形(即多一条从起点到终点的边)。默认为Trueplot()支持的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_gidget_label/get_legend/get_lines/get_title/get_transform/get_visibleget_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=, 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的属性
- 如果绘制一个直方图,那么就是元组
学员评价