如何在matplotlib中设置X轴上的“步”

ivqmmu1c  于 2023-05-18  发布在  其他
关注(0)|答案(2)|浏览(102)

我有一些代码:

#!/usr/bin/env python

import matplotlib
matplotlib.use("Agg")       
import matplotlib.pyplot as plt

x = [1,2,3,4,5]
y = [1.2,1.9,3.1,4.2,4.8]

plt.plot(x,y)
plt.xlabel('OX')
plt.ylabel('OY')
plt.savefig('figure1.png')
plt.close()

它给了我这个数字:

正如你所看到的,X轴上的“步长”是0.5,但我想把它设为1。怎么做?
当我使用plt.xticks(1)时,它给我错误:

Traceback (most recent call last):   File "overflow.py", line 13, in <module>
    plt.xticks(1)   File "/usr/lib/pymodules/python2.6/matplotlib/pyplot.py", line 998, in xticks
    locs = ax.set_xticks(args[0])   File "/usr/lib/pymodules/python2.6/matplotlib/axes.py", line 2064, in set_xticks
    return self.xaxis.set_ticks(ticks, minor=minor)   File "/usr/lib/pymodules/python2.6/matplotlib/axis.py", line 1150, in set_ticks
    if len(ticks) > 1: TypeError: object of type 'int' has no len()

我在Ubuntu 10.10上使用Python 2.6.6。

goqiplq2

goqiplq21#

plt.xticks([1, 2, 3, 4, 5])

xticks文档。

bis0qfac

bis0qfac2#

您可以设置每隔一个x刻度的x刻度。

import matplotlib.pyplot as plt

x = [1,2,3,4,5]
y = [1.2,1.9,3.1,4.2,4.8]

plt.plot(x, y)
plt.xticks(plt.xticks()[0][1::2]);

另一种方法是使用MultipleLocator(1)在每个整数位置上设置一个刻度。

ax = plt.subplot()
ax.plot(x, y)
ax.xaxis.set_major_locator(plt.MultipleLocator(1))

相关问题