matplotlib学习⼼得(绘图常⽤)
Figure对象
创建对象最简单的⽅法pyplot
fig=plt.figure()
fig.suptitle('a figure')
fig,ax=plt.subplots(2,2)
Axes对象
坐标轴对象(包含x,y,z轴等),即包含了多个Axis对象
⽤set_xlim/set_ylim()来设置坐标轴的范围
⽤set_xlabel()设置坐标轴标签(类似title)
利⽤axes辅助⽅法创建原始的Artist对象
ax.annotate()–⽂字注释
ax.fill()–共享区域
ax.imshow()–图像数据
ax.legend()–图轴例
ax.plot()–xy轴
Axis对象
负责⽣成刻度线(major tick,minor tick)和刻度线标签(tickLabels)
刻度线位置Locator,标签字符串由Formatter格式化
Artist对象
图上的所有对象基本都属于艺术家对象,艺术家对象有两种类型:基元和容器。基元表⽰要在画布上画的东西,容器是放置这些基元的位置(Axes,Axis,Figure)。⾸先创建⼀个figure对象,然后⽤figure创建⼀个或多个axes或subplot实例,这样可以实例化图例,并与⽤户界⾯连接起来。例如:1、⽤
pyplot处理绘图fig=plt.figure(),ax=fig.add_subplot(2,1,1),添加默认位置的绘图。2、⽤Axes处理绘
图,fig=plt.figure(),ax=fig.add_axes([0,0,1,1]),可以⾃定义位置和⼤⼩,更灵活,可以把subplot看作是特殊封装的axes,简洁但缺乏灵活性。
Matplotlib交互模式、阻塞模式
可以开启多窗⼝模式
在交互模式下,plt.plot()就可显⽰图像,不需要plt.show()(plt.draw()可以⽤来刷新图像)
阻塞模式下,只能打开⼀个窗⼝,关掉了才能打开另⼀个
⼀般matplotlib默认是开启交互模式的(plt.ioff()关闭)
shell中⼀般是阻塞模式
分类变量绘图
plt.bar(names,values)
names=[‘a’,’b’,’c’]
values=[1,10,100]
设置坐标轴刻度标签(横坐标为a,b,c……)
设置线属性
1. 直接使⽤关键字plt.plot(x,y,linewidth=
2.0)
2. 使⽤setp()关键字
lines=plt.plot(x,y)
plt.setp(lines,color=’r’,linewidth=2.0,……)
多图形和轴
使⽤gca()返回当前的轴axes实例对象
使⽤gcf()返回当前图像figure实例对象
clf()清楚当前图,cla()清楚当前轴
TeX⽂本表达式
r’content:$\lambda=100,\\sigma=15$’–content:λ=100,σ=15适⽤于所有matplotlib⽂本(title,text等)
⾮线性轴matplotlib中subplot
坐标轴可以⽀持log对数刻度来表⽰⾼数量级数字
plt.xscale('log')
显⽰图像
Image=plt.imread(image_file)#读⽂件
fig,ax=plt.plot()
ax.imshow(image)#读取图像数据
构图风格
plt.style.use(‘dark_background’)
rc设置
⾃定义图形的各种默认属性(matplotlib样式表),包括窗体⼤⼩、线条宽度颜⾊,坐标轴、⽹格属性等
Params)查看默认配置,来进⾏修改
rc中默认字体font.family字体、fontstyle样式、fontvariant字体⼤⼩写、fontstretch拉伸、fontweight字体粗细、fontsize
约束布局
颜⾊设定(5种形式)
1、⼀般有两种:RGB和RGBA两种。
在[0,1]浮点值RGB元组(0.1,0.2,0.3)中,三个参数分别表⽰红绿蓝三个的程度,⽽在RGBA中有四个参数多⼀个透明度Alpha
2、⼗六进制RGB或RGBA字符串(如:#OFOFOF)
3、⼀个X11/CSS4颜⾊名称,⽤法
import matplotlib._color_data as mcd
cn=mcd.CSS4_COLORS[]
4、xkcd颜⾊调查的名称,以‘xkcd:’为前缀
xkcd=mcd.XKCD_COLORS[‘xkcd:’+n]
ax.plot(x,y,’xkcd’)
5、CN颜⾊规范:C后⾯跟⼀个数字,如ax.plt(x,y,’C1’)
图形位置、⼤⼩设置
1、 从Figure对象上进⾏设置
1.self.fig.subplots_adjust(0,0,1,1)
Params[‘figure.subplot.left’] =0#rc设置
2、 从axes图像上进⾏设置
axes.set_position([0,0,1,1])
两种试下来的区别是:第⼀种是可以把figure的标题放到图形的内部中来,但axes的坐标轴⽆法放进来,⽽且如果两者都在图像外部不会相互⼲扰;第⼆种两者都不能放到图像内,⽽且标题之间会相互⼲扰哦。
基本⽂本命令
annotate在Axes上任意位置添加带可选箭头的注解
⽤法:`
axes.annotate(‘text’,xy=(2,1),xytext(3,4),
arrowprops=dict(facecolor=‘black’,shrink=0.5))`
xy表⽰箭头指向的位置坐标,xytext表⽰注解位置坐标,arrowprops为箭头的属性
set_xlabel在x轴上添加标签
set_title为Axes添加标题
设置标题的位置axes.set_title(‘text’,loc=’center/left/right’)
suptitle为图像添加标题
text在Axes上任意位置上添加⽂本
<(3,8,”text”,style=’italic’,bbox={‘facecolor’:’red’,alpha=0.5},fontsize=15,fontweight=’bold’,color=’green’)
text中可以设置位置,内容,字体⼤⼩粗细颜⾊,背景颜⾊,透明度等
位置设定还可以通过alignment来对准,如:
<(verticalaligement=’bottom/top/center’,horizontalalignment=’right/left/center’)
前者指y轴,后者为x轴,即放置在右下⾓位置,这个属性其他⼀些⽂本命令中也适⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。