一、色条Colorbar的基础
在我们绘制有色阶的图片时,多会用到colorbar这个关联利器,色条可以直接将数值与颜色连接在一起。常用的scatter、contourf是非常适合使用的。第一节我们来简要谈谈常用的colorbar参数,以后例子都基于contourf命令。
第一个参数为colorbar传入参数,代表colorbar所关联的contourf,这种方式是最简单的默认传入,绘制出来的colorbar和cf是相匹配的,展示的也是cf的信息。
cf=ax.contourf(... ...)fig.colorbar(cf)
第二个参数为colorbar绘制的默认子图位置参数,代表当前这个colorbar将要摆放的子图位置。
import numpy as npimport matplotlib.pyplot as pltimport matplotlib.ticker as mtickerplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False#负号def data(): datax=np.linspace(-10,10,200) datay=np.linspace(-10,10,200) X,Y=np.meshgrid(datax,datay) Z=np.sqrt(X**2+Y**2) return X,Y,Zx,y,z=data()fig=plt.figure(figsize=(5,2),dpi=500)ax1=fig.add_axes([0,0,0.4,1])ax1.set_title('ax1')acf1=ax1.contourf(x,y,z)ax2=fig.add_axes([0.5,0,0.4,1])ax2.set_title('ax2')acf2=ax2.contourf(x,y,z,cmap='Spectral_r')fig.colorbar(acf1,ax=ax2)
在上面这段程序中最后一句,fig.colorbar(acf1,ax=ax2),虽然我们传入了acf1即ax1里的等值线,但是我们指定colorbar中ax=ax2,所以绘制出来的colorbar将被放置在ax2旁边。
第三个为指定色条位置参数cax,我们放在后面专开一节讲。
第四个为使色条展示尖角的参数extend,他可以使色条展现出角的形状,其可选命令both表示两头都变尖,max表示数值大的那头变尖,min表示小的那头变尖。
cf=ax.contourf(x,y,z,extend='both')fig.colorbar(cf,extend='both')
第五个参数为缩放参数shrink,从0-1,色条将会按照输入值被缩放:
cf=ax.contourf(x,y,z)fig.colorbar(cf,shrink=0.5)
第六个参数为距离参数pad,该参数控制色条与子图的间距:
cf=ax.contourf(x,y,z)fig.colorbar(cf,pad=0.005)
第七个为色条方向参数orientation,控制色条时横纵方向,当为horizontal时,色条将被平放在下方:
cf=ax.contourf(x,y,z)fig.colorbar(cf,orientation='horizontal')
第八个为ticks,你可以传入一个列表,显示你想展示的刻度,其他刻度将消失。类似于ax.set_yticks( ).
cf=ax.contourf(x,y,z)fig.colorbar(cf,ticks=[0,2,4,16])