matplotlib中对坐标轴的控制: 坐标轴中包含的对象: x轴 y轴 top,bottom,right,left线 坐标刻度 一、如何控制指定元素不显示? ax = plt.gca() ax.spines['left'].set_visible(False) #想要那一条线不显示,在left部分填写即可 二、如何控制坐标轴在指定位置显示,如在(0,0)处显示 ax.spines['left'].set_position(('data',0)) ax.spines['bottom'].set_position(('data',0)) 三、如何控制坐标轴刻度? 1.控制坐标轴显示,刻度不显示 plt.xticks([]) 2.控制坐标轴刻度按照想要的刻度显示 plt.xticks([i for i in range(1,10)]) 3.如果是时间刻度,时间显示太长,可以将时间斜着显示吗? plt.xticks([i for i in range(1,10)],rotation=45) 四、坐标轴标题控制 1.显示坐标轴标题 plt.xlabel('x') 2.坐标轴标题位置进行选择显示
plt.xlabel('x',loc='left')
ax = plt.gca() # ax.spines['right'].set_color('none') # ax.spines['top'].set_color('none') ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) ax.spines['left'].set_position(('data',0)) ax.spines['bottom'].set_position(('data',0)) # ax.spines['left'].set_visible(False) # ax.spines['bottom'].set_visible(False) xtick = [i/10 for i in range(-10,10)] ytick = [j for j in range(-10,10,2)] # result = np.linspace(1,10,100) # print(result) plt.xticks(xtick,rotation=45) plt.yticks(ytick) # plt.xlabel('x') # plt.ylabel('y') ax.set_xlabel('x is none',loc='right',x=0.5,y=0) ax.set_ylabel('y is none',loc='top',rotation=55) plt.xlim((-1,1)) plt.ylim((-10,10)) plt.show()
在这里有几个点想讲一个,matplotlib中对于图表中一些元素的控制会有多个方法,这些方法其实没有好坏,都是一样的,看源码其实就只是对方法的另一种表达而已,但是多种方法实现同一个功能,其实有一些冗余,会让许多人在学习的时候会觉得吃力,因为多了一定的选择,在这里选择更多并不一定是好的,而且只会增加学习成本。所以在使用中,其实我们可以只选择其中的一个方法就可以了,更多的可以用对象的方式去处理,比如这里对坐标轴的控制我们选择了使用ax这个对象,那么我们就可以在后续的操作中都只用这个对象来调用方法即可,其他的方法参考了解一下其实就ok了。
对于坐标轴的控制其实还没有完结,如双轴图,多个子图的情况下,如果要对其中的子图进行更加精准的控制处理,还需要继续整理。