matplotlib手册

1.基本图形

散点图

plt.scatter(x,y,s=20,c='b',marker='')

折线图

plt.plot(x,y)

plt.plot_date(date,y,'-')    plt的plot_date默认画的的是散点

条形图

plt.bar(left=, height= , color='blue',width=0.8) 常用位置与默认参数

plt.barh(left=0,bottom=,height=)

示例:

index=np.arange(4)

s_a=[1,2,3,4]

s_b=[2,3,4,5]

bar_width=0.3

并列图形

matplotlib手册_第1张图片

plt.bar( index, s_a, bar_width, color='b' )

plt.bar(index+bar_width ,  s_b ,  bar_width , color='r' )

层叠:

matplotlib手册_第2张图片

plt.bar(index,a,wd)

plt.bar(index,b,wd,color='r',bottom=a)

直方图

单变量直方图:y轴表示频率

plt.hist(x,bins=10,clolor='blue',normed=True)   normed标准化,不显示个数显示频率

双变量直方图,xy表示维度,颜色亮度表示分布

饼状图

plt.axes(aspect=1)  将x与y轴的比例调为1,不为1则饼状图的图形有压缩

plt.pie(x= , labels=labels,autopct='%0.f%%' , explode=[ ] , shadow=True)  

参数: x为数据,labels为标签  autopet显示各区域的半分比 explode为与x同长度,将图形突出显示  shadow显示阴影

示例:


matplotlib手册_第3张图片

plt.axes(aspect=1)

X=[1,2,3,4]

labels=['a','b','c','d']

explode=[0,0.05,0.08,0]

plt.pie(X,labels=labels,explode=explode,autopct='%.2f')

箱型图

显示数据分散情况

上边缘,上四分位数,中位数,下四分位数,下边缘,异常值

data=np.random.normal(size=1000,loc=0,scale=1)

plt.boxplot(data,sym='o',whis=1.5)  sym调整异常值点的形状,

whis调整上下边缘长度,为比例值,whis越大,边缘越长

matplotlib手册_第4张图片

示例2:箱型图对比

matplotlib手册_第5张图片

data=np.random.normal(size=(1000,4))

lables=['a','b','c','d']

plt.boxplot(data,lables=lables)

2.颜色和样式

基本颜色

内建颜色

b(blue)  g(grenn)  r(red)  c(cyan)  m(magenta)  y(yellow)  k(boack)  w(white)

其他颜色:灰色 RGB 十六进制

y=np.arange(5)

plt.plot(y,color='r')

plt.plot(y+1,color='0.5')    灰度

plt.plot(y+2,color='#ff00ff')  

plt.plot(y+3,color=(0.1,0.2,0.3))


matplotlib手册_第6张图片

点的形状

marker 显示指定marker时有线段,隐式时,按位置指定时只有形状

点的形状有多种,不同形状默认使用不同颜色

. , o v < > 1 2 3 4 8 s  p * h H + x D d

线的形状

- 实线    -- 虚线    -. 点划线  :点线

样式字符串 颜色 点形 线形 字符串表示'

3.面向对象

多图与子图

FigureCanvas  Figure Axes 三个对象

fig=plt.figure()          画布对象,每个figure对象是一个图

ax1=fig.add_subplot(2,2,1)     子图,设定规格和位置

ax1.plot(x,y)   在子图上绘制图形

ax2=fig.add_subplot(2,2,2)

ax3=fig.add_subplot(2,2,3)

ax4=fig.add_subplot(2,2,4)

4.格式

4.1网格

ax.grid(color='r', linestyle=' ')  设置网格效果,可以改颜色和线性

4.2图例

plt.plot(x,x,label='figneme')

plt.plot(x,x**2, label='secordname')

plt.legend()        显示设置的图例,位置默认best

plt.legend( [ 'a', 'b'  ] , loc=[0~10] , ncol=2)   位置参数 loc ,用数字代替位置,0是自适应,ncol设置图例的列数,图例很多时将图例扁平化换

4.2.1设置图例的方法

方法1:绘图时设置

plt.plot(x,x,label='name') 

ax.plot(x,x,label='b')   在绘图时用label参数设置图例名称,用该方法时必须用plt.legend ()和ax.legend()将图例显示出力

方法2:legend()方法设置

plt.legend([ ]) 和 ax.legend([ ])  传入列表参数即为设置图例,同时设置位置和列数

4.3坐标轴范围

plt.axis()  显示坐标轴范围

plt.axis([ -10, 10  , 0 ,10  ]) 可以直接传入列表参数设置坐标轴范围 

plt.xlim() 显示x的范围 ,传入列表参数为设置,plt.ylim([ 0,100]) ,也可以用ymin 和ymax 指定单边

plt.xlim([0,10]) 或 plt.xlim(xmin=0,xmax=10) 相同效果

ax.set_xlim() 和 ax.set_ylim()为对应的面向对象的方式设置坐标轴范围

4.4坐标轴刻度

ax=plt.gca()    plt.gca()函数用来获取当前图形的坐标轴

ax.locator_params(nbins=20)  可以指定轴 plt.locator_params('x' , nbins=5) 

4.5 副坐标轴

方法1:plt方式

plt.plot()  

plt.twinx() 添加一个副坐标轴,默认0到1

plt.plot(x,y) 默认的图形对应副坐标轴

方法2:面向对象方式

x=np.arange(2,20)

y1=x*x

y2=np.log(x)

fig=plt.figure()

ax1=fig.add_subplot(111)

ax1.plot(x,y1)

ax1.set_ylabel('y1')

ax1.set_xlabel('y1 vs  y2')

ax1.set_ylim([0,400])

ax2=ax1.twinx()

ax2.plot(x,y2)

ax2.set_ylabel('y2')

plt.show()

matplotlib手册_第7张图片

类似twinx() 方法,也有twiny()方法,共享y轴,x轴上下不同

4.6 注释

4.6.1 annotate() 注释

plt.annotate('this is zhusi', xy=(0,2), xytext=(0,10),arrowprops=dict(facecolor='r', headlength=5 ,headwidth=5, width=2 ) )  注释函数 

.annotate()参数,第一个str类型参数,为注释文本内容,xy参数为元祖,设置注释所在坐标位置,xytext参数为元祖,设置注释文本所在内容,arrowprops为显示注释图形,dict()为箭头,包含多个参数,常用的 facecolor设置注释颜色,headlength设置箭头长度,headwidth设置箭头宽度,width设置箭尾宽度

x=np.linspace(-10,10,100)

y=x*x

plt.plot(x,y)

plt.ylim(ymin=0)

plt.annotate('this is zhusi', xy=(0,2), xytext=(0,10),arrowprops=dict(facecolor='r', headlength=5 ,headwidth=5, width=2  ) )

matplotlib手册_第8张图片

4.6.2 文本注释

plt.text(x, y , str , family=' ' , size= , color=  ,style= , weight= , bbox=dict(facecolor= , alpha=0.2)) 文本注释,设置文本的一些参数,x,y为设置文本的起始坐标,str为文本的字符串内容,family设置字体的样式如宋体等,size设置大小,color设置颜色,style设置样式如倾斜,weight设置粗体等款细,bbox设置文本的边框,在dict()中设置参数,facecolor设置边框颜色,alpha设置透明度。

x=np.linspace(-10,10,100)

y=x*x

plt.plot(x,y)

plt.ylim(ymin=0)

plt.text(0, 25, 'zhushi', family='serif' , size=20, color='r' ,style='italic', weight='black', bbox=dict(facecolor='r',alpha=0.2))

plt.text(0,5,'duibi')

matplotlib手册_第9张图片

4.6.3公式

matplotlib自带 mathtext引擎,不用安装Tex系统

参考matplotlib公式手册

.text() 方法,将str参数传入数学公式的文本编辑内容,参考matplotlib文档规则

ax.text(2,4, r'$ \alpha_i \beta_j \pi \lambda \omega $',size=15)

ax.text(4,4 ,r'$ \sin(0)=\cos(\frac{\pi} {2}) $',size=15)

ax.text(2,2, r'$ \lim_{x \rightarrow y} \frac{1}{x^3} $',size=15)

ax.text(4,2,r'$ \sqrt[4]{x}=\sqrt{y} $',size=15)

matplotlib手册_第10张图片

5.填充区域

你可能感兴趣的:(matplotlib手册)