pythonmatplotlibfrequencyxticks

How to set "step" on x-axis in my figure in matplotlib


I have some code:

#!/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()

And it gives me that figure:

my figure

As you can see, the "step" on axis X is 0.5 but I would like to set it to 1. How to make it?

When I use plt.xticks(1), it gives me errors:

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()

I use Python 2.6.6 on Ubuntu 10.10.


Solution

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

    xticks documentation.

    Five x-ticks.