2017-08-10 116 views
0

我正在繪製一個圖形,並希望設置圖形形狀和刻度位置。但我發現我不能一起做這兩件事。例如,如果我使用以下代碼:matplotlib:如何同時更改刻度位置和圖形形狀

import matplotlib 
import matplotlib.pyplot as plt 

ls = range(0,10) 
fig, ax = plt.subplots() 
# set figure shape 
plt.figure(figsize=(10,5)) 
plt.ylim([0,10]) 
plt.plot(ls) 
figname = 'aaa.jpg' 
# set ytick positions 
ax.set_yticks([1,3,5,7,9]) 
plt.savefig(figname,format='jpg') 

然後我得到下圖。 enter image description here

形狀是正確的。但ytick未被代碼行ax.set_yticks([1,3,5,7,9])更改。

然後我嘗試下面的代碼(即移動句子plt.figure(figsize=(10,5))到程序的開頭):

import matplotlib 
import matplotlib.pyplot as plt 

# set figure shape 
plt.figure(figsize=(10,5)) 
ls = range(0,10) 
fig, ax = plt.subplots() 
plt.ylim([0,10]) 
plt.plot(ls) 
figname = 'aaa.jpg' 
# set ytick position 
ax.set_yticks([1,3,5,7,9]) 
plt.savefig(figname,format='jpg') 

然後我得到如下圖所示:

enter image description here

ytick是正確。 Yicks出現在位置[1,3,5,7,9]。但是,圖形不是我設定的形狀。

如何一起做這兩件事?

謝謝大家的幫助!

+0

兩個圖顯示相同的數字是什麼,什麼是錯的第二幅圖? –

回答

1

您可以改爲在subplot函數中設置figsize函數。

什麼地方出了錯在第一張圖:

plt.figure(figsize=(10,5)) 

上面的代碼行正在對其中的圖形被繪製新圖中,「斧頭」在其上設置在y蜱是與不同的子區塊有關。

ls = range(0,10) 
fig, ax = plt.subplots(figsize=(10,5)) 

ax.set_yticks([1,3,5,7,9]) 
ax.set_xticks([1,3,5,7,9]) 

plt.grid() 
plt.plot(ls) 

該地塊顯示正是你想做

graph