概述
Matplotlib库
官方效果图库
Matplotlib库的使用
Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发
matplotlib.pyplot是绘制各类可视化图形的合令子库,相当于快捷方式
import matplotlib.pyplot as plt
绘图基本函数
plt.axis([a,b,c,d]) #轴大小min(x)=a,max(x)=y,min(y)=c,max(y)=d
plt.ylabel(‘name’) #y axis name
plt.xlabel(‘name’) #x axis name
plt.savefig(‘name’,dpi=None) #save png file
plt.show() #show plt
文本显示常用函数
plt.xlabel() x轴标签
plt.ylabel() y轴标签
plt.title() 标题
plt.text() 任意位置增加文本
plt.annotate() 增加带箭头的注解
import matplotlib.pyplot as plt
plt.plot([3,3,4,5,2])
plt.ylabel('grade')
plt.savefig('test',dpi=600)
plt.xlabel('111')
plt.show()
绘图区域划分
方式一:
plt.subplot(nrows,ncols,plot_number) #行的分割数量nrows,列的分割数量ncols,对应的区域plot_number(6) 6/(max(axis=0)+1) 商为第几行,余数为第几列
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t)*np.cos(2*np.pi*t)
a=np.arange(0.,5.,.02)
plt.subplot(221)
plt.title('图一区',fontproperties='SimHei')
plt.plot(a,f(a))
plt.subplot(222)
plt.title('图二区',fontproperties='SimHei')
plt.subplot(2,1,2)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.show()
方式二:
plt.subplot2grid()
plt.subplot2grid(GridSpec,CurSpec,colspan=1,rowspan=1)
理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
plt.subplot2grid((3,3),(1,0),colspan=2,rowspan=2) 分格数3X3,选中1行0列,列向占用2,行占用2
GridSpec类
import matplotlib.gridspec as gridspec
gs=gridspec.GridSpec(3,3)
ax1=plt.subplot(gs[0,:])
ax2=plt.subplot(gs[1,:-1])
ax3=plt.subplot(gs[2,0])
format_string常用标记如下:
颜色字符
代码 | 颜色 | 代码 | 颜色 |
---|---|---|---|
‘b’ | 蓝色 | ‘g’ | 绿色 |
‘r’ | 红色 | ‘c’ | 青绿 |
‘m’ | 洋红 | ‘y’ | 黄色 |
‘k’ | 黑色 | w’ | 白色 |
‘0.8’ | 灰度值字符串 | ‘#008000’ | RGB颜色 |
风格字符
标记 | 类型 | 标记 | 类型 |
---|---|---|---|
‘-’ | 实线 | ‘–’ | 披拆线 |
‘-.’ | 点划线 | ‘:’ | 虚线 |
‘’ ‘’ | 无线条 |
标记字符
标记 | 类型 | 标记 | 类型 |
---|---|---|---|
‘.’ | 点标记 | ‘1’ | 下花三角 |
‘,’ | 像素标记(极小点) | ‘2’ | 上花三角 |
‘o’ | 实心圈 | ‘3’ | 左花三角 |
‘v’ | 倒三角 | ‘4’ | 右花三角 |
‘^’ | 上三角 | ‘s’ | 实心方形 |
‘>’ | 右三角 | ‘p’ | 实心五角 |
‘<’ | 左三角 | ‘*’ | 星形标记 |
‘h’ | 竖六边形 | ‘H’ | 横六边形 |
‘+’ | 十字标记 | ‘x’ | X标记 |
‘D’ | 菱形 | ‘d’ | 瘦菱形 |
‘|’ | 垂直线 |
直接用代码控制颜色、标记、线的属性
代码 | 解释 | 实例 |
---|---|---|
color | 控制颜色 | color=‘green’ |
linestyle | 线条风格 | linestyle=‘dashed’ |
marker | 标记风格 | marker=‘o’ |
markerfacecolor | 标记颜色 | markerfacecolor=‘blue’ |
markersize | 标记尺寸 | markersize=20 |
plot多维图形绘制
plt.plot(x,y,format_string,**kwargs) #标准
#plt.plot(x,y,format_string,x,y,format_string,x,y,format_string) #扩展多维
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(10)
plt.plot(a,a*1.5,'go-',a,a*2.5,'r*',a,a*3.5,'*',a,a*4.5,'b-.')
plt.show()
pyplot的中文显示:
方式一:修改全局字体rcParams
属性 | 解释 |
---|---|
‘font.family’ | 字体名称 |
‘font.style’ | 字体风格,正常’normal’ 斜体’italic’ |
‘font.size’ | 字体大小,整数字号或都’large’,‘x-small’ |
字体 | 类型 |
---|---|
‘SimHei’ | 黑体 |
‘Kaiti’ | 楷体 |
‘LiSu’ | 隶书 |
‘FangSong’ | 仿宋 |
‘YouYuan’ | 幼圆 |
‘STSong’ | 宋体 |
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.size']=20
方式二:修改部分属性:fontproperties(建议使用)
import numpy as np
import matplotlib.pyplot as plt
a=np.arange(0.,5.,0.02)
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=20,color='green')
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=20)
plt.title(r'正弦波实例 $y=cos(2pi x)$',fontproperties='SimHei',fontsize=25)
plt.text(2,1,r'$nu=100$',fontsize=15)
plt.axis([-1,6,-2,2])
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.grid(True)
plt.show()
plt.annotate(s,xy=arrow_crd,xytext=text_crd,arrowprops=dict)
s 要注解的字符串
xy 箭头所在位置
xytext 文本所在位置
arrowprops 箭头属性
plt.annotate(r'$mu=100$',xy=(2,1),xytext=(3,1.5),
arrowprops=dict(facecolor='black',shrink=0.2,width=2))
16种基础图表展示
pyplot的基础图标函数
plt.plot(x,y,fmt,…) #坐标图
plt.boxplot(data,notch,position) #箱形图
plt.bar(left,height,width,bottom) #条形图
plt.barh(width,bottom,left,height) #横向条形图
plt.polar(theta,r) #极坐标图
plt.pie(data,explode) #饼图
plt.psd(x,NFFT=256,pad_to,Fs) #功率谱密度图
plt.specgram(x,NFFT=256,pad_to,F) #谱图
plt.cohere(x,y,NFFT=256,Fs) #X-Y的相关性函数
plt.scatter(x,y) #散点图,x,y长度相同
plt.step(x,y,where) #步阶图
plt.hist(x,bins,normed) #直方图
plt.contour(X,Y,Z,N) #等值图
plt.vlines() #垂直图
plt.stem(x,y,linefmt,markerfmt) #柴火图
plt.plot_data() #数据日期
图表实例
饼图绘制,百分比类型的数据,展示效果较好
plt.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,counterclock=True,wedgeprops=None,textprops=None,
center=(0,0),frame=False,rotatelabels=False,data=None,*)
explode 分离程度(突出显示)
labels 标签
autopct 显示百分数方式
shadow 是否阴影(是否二维)
startangle 起始角度
import matplotlib.pyplot as plt
labels='frogs','hogs','dogs','logs'
sizes=[15,30,45,10]
explode=(0,0.1,0,0)
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)
plt.axis('equal') #X,Y方向相同
plt.show()
直方图绘制,个数或取值方面的分布展示
plt.hist(x,bins=None,range=None,density=None,weights=None,cumulative=False,
bottom=None,histtye=‘bar’,align=‘mid’,orientation=‘vertical’,
rwidth=None,log=False,color=None,label=None,stacked=False,
normed=None,*,data=None,**kwargs)
bins 直方图内生成的数据汇集个数(直方个数)
normed=1 元素个数归一化,当normed=0时为元素个数
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(0)
mu,sigma=100,20 #均值,标准差
a=np.random.normal(mu,sigma,size=100)
plt.hist(a,20,normed=1,histtype='stepfilled',facecolor='b',alpha=0.75)
plt.title('Histogram')
plt.show()
极坐标
ax=plt.subplot(111,projection=‘polar’) #面向对象方式建立极坐标图
bars=ax.bar(theta,radii,width=width,bottom=0.)
import numpy as np
import matplotlib.pyplot as plt
n=20
theta=np.linspace(0.,2*np.pi,n,endpoint=False)
radii=10*np.random.rand(n)
width=np.pi/4*np.random.rand(n)
ax=plt.subplot(111,projection='polar') #面向对象方式建立极坐标图
bars=ax.bar(theta,radii,width=width,bottom=0.)
for r,bar in zip(radii,bars):
bar.set_facecolor(plt.cm.viridis(r/10.))
bar.set_alpha(0.5)
plt.show()
散点图,使用面向对象的方式绘制
import numpy as np
import matplotlib.pyplot as plt
fig,ax=plt.subplots()
ax.axis=([-10,10,-10,10])
ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')
ax.set_title('Simple Scatter')
plt.show()
最后
以上就是高贵鸡翅为你收集整理的python MatplotlibMatplotlib库的使用绘图区域划分pyplot的中文显示:16种基础图表展示图表实例的全部内容,希望文章能够帮你解决python MatplotlibMatplotlib库的使用绘图区域划分pyplot的中文显示:16种基础图表展示图表实例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复