的代码不同的结果: -变化语法导致输出
def build_graph_year(self,year):
data=self.req_da(0,year)
n=[]
h=[]
for i in data:
t=''
for x in range(0,len(i),1):
z=i[x]
if z!='-':
t=t+z
if z=='-':
n.append(t)
h.append(i[x+1:])
fig=plt.figure("Graph For Year {0}".format(year))
rect=fig.patch
rect.set_facecolor('green')
pos=np.arange(0,len(n),1)+1
graph1=fig.add_subplot(1,1,1)
graph1.barh(pos,h,align='center',color='r')
graph1.set_xlabel('Height',color='w')
graph1.set_ylabel('Names',color='w')
graph1.set_title('Height Of Students in the year {0}'.format(year),color='w')
graph1.tick_params(axis='x',color='w')
graph1.tick_params(axis='y',color='w')
graph1.spines['top'].set_color('black')
graph1.spines['bottom'].set_color('black')
graph1.spines['left'].set_color('black')
graph1.spines['right'].set_color('black')
plt.yticks(pos,n)#OVER HERE
plt.show()
的代码工作正常。但是当我将第二行的“plt”替换为“graph1”时,勾号位置不再被存储在列表n中的字符串替换。反而会发生错误: -
Traceback (most recent call last):
File "F:\Python\Python-Programs\Graph_use_1_heights.py", line 109, in <module>
h.build_graph_year('2016')
File "F:\Python\Python-Programs\Graph_use_1_heights.py", line 105, in build_graph_year
graph1.yticks(pos,n)
AttributeError: 'AxesSubplot' object has no attribute 'yticks'
但是,如果我用“.set_yticks'取代” .yticks',因此不再发生错误,但刻度位置并不在列表n中的字符串替换。
为什么会发生这种情况,graph.set_yticks(pos,n) 和plt.yticks(pos,n)之间的区别是什么?
我相信不同的是选择到** **情节的y_ticks并选择设置** y_ticks值**包含在graph1对象中。 –
在绘图之前,我正在设置graph1对象中的yticks的值,所以不应该将它绘制出来并修改为我? –