2017-08-10 111 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