matplotlib的使用——坐标轴设置部分
坐标轴设置常用函数及其作用
1、plt.xlim()和plt.ylim()
plt.xlim( *args, **kwargs) # 使用方法 # xlim((left, right)) # set the xlim to left, right # xlim(left, right) # set the xlim to left, right
用于设置x坐标轴位于left到right之间
plt.ylim( *args, **kwargs) # ylim((bottom, top)) # ylim(bottom, top)
用于设置y坐标轴位于bottom到top之间
2、plt.xlabel()和plt.ylabel()
这两个函数用于设置x轴和y轴的标签。
应用举例:
plt.xlabel('I am x label') plt.ylabel('I am y label')
其x轴上的作用效果如图所示:
3、plt.xticks()和plt.xticks()
plt.xticks( ticks=None, labels=None, **kwargs) plt.yticks( ticks=None, labels=None, **kwargs)
在传输量仅只有ticks时:
newTicks = np.linspace(-1,1,10) plt.xticks(newTicks)
其可以将x轴坐标设置为-1到1,间隔数为10。
在传输量有ticks和labels时:
plt.yticks([-2,-1.0,0,1.5,3], ['really bad','little bad','normal','little good','pretty good'])
其可以将y轴坐标按照一定格式设置字符,-2对应really bad,-1对应little bad,以此类推。
二者结合的作用效果为:
4、axis操作指令
axis操作指令可以使得坐标轴的位置、样式发生改变。
# 可以用于获取当前的axis。 ax = plt.gca() # 用于设置坐标轴边的颜色与情况 # 此时设置图像的上边、右边axis为无色 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') # 设置x轴坐标在下部 ax.xaxis.set_ticks_position('bottom') # 设置x轴位于图像y=0处 ax.spines['bottom'].set_position(('data', 0)) # 设置x轴坐标在左部 ax.yaxis.set_ticks_position('left') # 设置y轴位于图像x=0处 ax.spines['left'].set_position(('data',0))
示例代码
本文将两个figure进行对比,两个figure均有各自的特点设置。
import matplotlib.pyplot as plt import numpy as np x = np.linspace(-1,1,50) y1 = 2*x + 1 y2 = x**2 plt.figure(num=1,figsize=(8,5)) # 用于设置x轴的范围 plt.xlim((-1,1)) # 用于设置y轴的范围 plt.ylim((-2,5)) # 设置x轴的名称 plt.xlabel('I am x label') # 设置y轴的名称 plt.ylabel('I am y label') # 将新的x轴上的坐标设置为-1到1间隔数为10 newTicks = np.linspace(-1,1,10) plt.xticks(newTicks) # 将y轴坐标按照一定格式设置字符,-2对应really bad,-1对应little bad plt.yticks([-2,-1.0,0,1.5,3], ['really bad','little bad','normal','little good','pretty good']) # 按照一定格式画线 plt.plot(x,y2,color = 'red',linewidth = 1.0,linestyle = '--') plt.plot(x,y1) # 新建一幅图像,形成与上一幅图的对比 plt.figure(num=2,figsize=(8,5)) plt.xlim((-1,1)) plt.ylim((-2,5)) plt.xlabel('I am x label') plt.ylabel('I am y label') newTicks = np.linspace(-1,1,10) plt.xticks(newTicks) # y轴字体差别,设置成斜体 plt.yticks([-2,-1.0,0,1.5,3], [r'$really\ bad$',r'$little\ bad$',r'$normal$',r'$little\ good$',r'$pretty\ good$']) plt.plot(x,y2,color = 'red',linewidth = 1.0,linestyle = '--',marker = '.') plt.plot(x,y2,'r--.',linewidth = 1.0) plt.plot(x,y1) # 获得当前的axis ax = plt.gca() # 设置图像的上边、右边axis为无色 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') # 设置x轴坐标在下部 ax.xaxis.set_ticks_position('bottom') # 设置x轴位于图像y=0处 ax.spines['bottom'].set_position(('data', 0)) # 设置x轴坐标在左部 ax.yaxis.set_ticks_position('left') # 设置y轴位于图像x=0处 ax.spines['left'].set_position(('data',0)) print(ax) plt.show()
figure1:
figure2:
天道酬勤 循序渐进 技压群雄