matplotlib:如何同时改变刻度位置和图形

时间:2017-08-10 04:19:23

标签: python 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]的位置。但是,图形不是我设定的形状。

如何一起完成这两件事?

谢谢大家的帮助!!!

1 个答案:

答案 0 :(得分:1)

您可以在figsize功能中设置subplot

第一张图中出了什么问题:

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

上面的代码行正在创建一个新的图形,在该图形上绘制图形,在其上设置y标记的“ax”与不同的子图形相关。

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