使用Python绘图库Matplotlib绘图时,如何设置坐标轴范围

更新时间:01-28 教程 由 情念 分享

坐标轴范围设置

坐标轴范围的设置通常有两种方法,第一种为通过axes.set_xbound和axes.set_ybound对X轴和Y轴进行分别设置,第二种为通过axes.set_xlim和axes.set_ylim方法对X轴和Y轴进行分别设置。

这两种方法虽然都能改变坐标轴刻度范围,但是在使用的时候却有差别。

1、axes.set_xbound和axes.set_ybound方法

axes.set_xbound(lower,upper)

axes.set_ybound(lower,upper)

axes.set_xbound和axes.set_ybound方法有两个参数值,这两个参数值不分先后,大的值代表坐标轴的最大值,小的值为坐标轴最小值。

方法实例:

importnumpyasnp

importmatplotlib.pyplotasplt

importmatplotlibasmpl

importmatplotlib.imageasimg

mpl.rcParams['ytick.color']='white'

mpl.rcParams['xtick.color']='white'

mpl.rcParams['ytick.labelsize']='large'

mpl.rcParams['xtick.labelsize']='large'

mpl.rcParams['axes.edgecolor']='white'

x=np.linspace(0.0,5.0)

y=np.cos(2*np.pi*x)*np.exp(-x)

fig,ax=plt.subplots(nrows=1,ncols=2)

bgimg=img.imread('picture.png')

fig.figimage(bgimg)

fig.subplots_adjust(left=0.05,right=0.95,top=0.95,bottom=0.05,wspace=0.12)

ax[0].set_facecolor('None')

ax[0].plot(x,y,'o-',color='gold')

ax[1].set_facecolor('None')

ax[1].plot(x,y,'o-',color='gold')

ax[1].set_ybound(-0.3,0.5)

plt.show()

2、axes.set_xlim和axes.set_ylim方法

axes.set_xlim(left,right)

axes.set_ylim(bottom,top)

axes.set_xlim和axes.set_ylim方法我们已经在坐标轴方向中讲过,他们的参数分别为X轴左端点值、右端点值和Y轴底部端点值、顶部端点值,所以只要给定参数值就设定好了坐标轴范围。

方法实例:

importnumpyasnp

importmatplotlib.pyplotasplt

importmatplotlibasmpl

importmatplotlib.imageasimg

mpl.rcParams['ytick.color']='white'

mpl.rcParams['xtick.color']='white'

mpl.rcParams['ytick.labelsize']='large'

mpl.rcParams['xtick.labelsize']='large'

mpl.rcParams['axes.edgecolor']='white'

x=np.linspace(0.0,5.0)

y=np.cos(2*np.pi*x)*np.exp(-x)

fig,ax=plt.subplots(nrows=2,ncols=1)

bgimg=img.imread('picture.png')

fig.figimage(bgimg)

fig.subplots_adjust(left=0.05,right=0.95,top=0.95,bottom=0.05,hspace=0.12)

ax[0].set_facecolor('None')

ax[0].plot(x,y,'o-',color='gold')

ax[1].set_facecolor('None')

ax[1].plot(x,y,'o-',color='gold')

ax[1].set_xlim(1,4)

plt.show()

需要注意的是

当我们需要使用axes.set_xscale方法改变X轴比例尺时,axes.set_xbound方法和axes.set_xlim方法必须在axes.set_xscale方法之后使用才能正常显示。

当我们需要使用axes.invert_xaxis方法对坐标轴方向进行改变时,使用axes.set_xbound方法并不会对axes.invert_xaxis方法产生影响;而axes.set_xlim方法与axes.invert_xaxis方法互相影响,位置靠后的代码效果会覆盖位置靠前的代码效果。

对比实例:

1、左图axes.set_xbound方法在axes.set_xscale方法之后使用,右图axes.set_xbound方法在axes.set_xscale方法之前使用

importnumpyasnp

importmatplotlib.pyplotasplt

importmatplotlibasmpl

importmatplotlib.imageasimg

mpl.rcParams['ytick.color']='white'

mpl.rcParams['xtick.color']='white'

mpl.rcParams['ytick.labelsize']='large'

mpl.rcParams['xtick.labelsize']='large'

mpl.rcParams['axes.edgecolor']='white'

x=np.linspace(0.0,5.0)

y=np.cos(2*np.pi*x)*np.exp(-x)

fig,ax=plt.subplots(nrows=1,ncols=2)

bgimg=img.imread('picture.png')

fig.figimage(bgimg)

fig.subplots_adjust(left=0.05,right=0.95,top=0.95,bottom=0.05,wspace=0.12)

ax[0].set_facecolor('None')

ax[0].plot(x,y,'o-',color='gold')

ax[0].set_xscale('log',basex=2)

ax[0].set_xbound(0,4)

ax[1].set_facecolor('None')

ax[1].plot(x,y,'o-',color='gold')

ax[1].set_xbound(0,4)

ax[1].set_xscale('log',basex=2)

plt.show()

2、左图axes.set_xlim方法在axes.set_xscale方法之后使用,右图axes.set_xlim方法在axes.set_xscale方法之前使用

importnumpyasnp

importmatplotlib.pyplotasplt

importmatplotlibasmpl

importmatplotlib.imageasimg

mpl.rcParams['ytick.color']='white'

mpl.rcParams['xtick.color']='white'

mpl.rcParams['ytick.labelsize']='large'

mpl.rcParams['xtick.labelsize']='large'

mpl.rcParams['axes.edgecolor']='white'

x=np.linspace(0.0,5.0)

y=np.cos(2*np.pi*x)*np.exp(-x)

fig,ax=plt.subplots(nrows=1,ncols=2)

bgimg=img.imread('picture.png')

fig.figimage(bgimg)

fig.subplots_adjust(left=0.05,right=0.95,top=0.95,bottom=0.05,wspace=0.12)

ax[0].set_facecolor('None')

ax[0].plot(x,y,'o-',color='gold')

ax[0].set_xscale('log',basex=2)

ax[0].set_xlim(0,4)

ax[1].set_facecolor('None')

ax[1].plot(x,y,'o-',color='gold')

ax[1].set_xlim(0,4)

ax[1].set_xscale('log',basex=2)

plt.show()

3、左图axes.set_xbound方法在axes.invert_xaxis方法之后使用,右图axes.set_xbound方法在axes.invert_xaxis方法之前使用

importnumpyasnp

importmatplotlib.pyplotasplt

importmatplotlibasmpl

importmatplotlib.imageasimg

mpl.rcParams['ytick.color']='white'

mpl.rcParams['xtick.color']='white'

mpl.rcParams['ytick.labelsize']='large'

mpl.rcParams['xtick.labelsize']='large'

mpl.rcParams['axes.edgecolor']='white'

x=np.linspace(0.0,5.0)

y=np.cos(2*np.pi*x)*np.exp(-x)

fig,ax=plt.subplots(nrows=1,ncols=2)

bgimg=img.imread('picture.png')

fig.figimage(bgimg)

fig.subplots_adjust(left=0.05,right=0.95,top=0.95,bottom=0.05,wspace=0.12)

ax[0].set_facecolor('None')

ax[0].plot(x,y,'o-',color='gold')

ax[0].invert_xaxis()

ax[0].set_xlim(0,4)

ax[1].set_facecolor('None')

ax[1].plot(x,y,'o-',color='gold')

ax[1].set_xlim(0,4)

ax[1].invert_xaxis()

plt.show()

4、左图axes.set_xlim方法在axes.invert_xaxis方法之后使用,右图axes.set_xlim方法在axes.invert_xaxis方法之前使用

importnumpyasnp

importmatplotlib.pyplotasplt

importmatplotlibasmpl

importmatplotlib.imageasimg

mpl.rcParams['ytick.color']='white'

mpl.rcParams['xtick.color']='white'

mpl.rcParams['ytick.labelsize']='large'

mpl.rcParams['xtick.labelsize']='large'

mpl.rcParams['axes.edgecolor']='white'

x=np.linspace(0.0,5.0)

y=np.cos(2*np.pi*x)*np.exp(-x)

fig,ax=plt.subplots(nrows=1,ncols=2)

bgimg=img.imread('picture.png')

fig.figimage(bgimg)

fig.subplots_adjust(left=0.05,right=0.95,top=0.95,bottom=0.05,wspace=0.12)

ax[0].set_facecolor('None')

ax[0].plot(x,y,'o-',color='gold')

ax[0].invert_xaxis()

ax[0].set_xlim(0,4)

ax[1].set_facecolor('None')

ax[1].plot(x,y,'o-',color='gold')

ax[1].set_xlim(0,4)

ax[1].invert_xaxis()

plt.show()

声明:关于《使用Python绘图库Matplotlib绘图时,如何设置坐标轴范围》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2106307.html