Source From Here
Question
I am trying to fix how python plots my data.
Say
and
Then I would do:
and the x axis' ticks are plotted in intervals of 5. Is there a way to make it show intervals of 1?
How-To
You could explicitly set where you want to tick marks with plt.xticks:
For example,
np.arange was used rather than Python's range function just in case min(x) and max(x) are floats instead of ints. The plt.plot (or ax.plot) function will automatically set default x and y limits. If you wish to keep those limits, and just change the stepsize of the tick marks, then you could use ax.get_xlim() to discover what limits Matplotlib has already set:
The default tick formatter should do a decent job rounding the tick values to a sensible number of significant digits. However, if you wish to have more control over the format, you can define your own formatter. For example,
Here's a runnable example:
Question
I am trying to fix how python plots my data.
Say
- x = [0,5,9,10,15]
- y = [0,1,2,3,4]
- matplotlib.pyplot.plot(x,y)
- matplotlib.pyplot.show()
How-To
You could explicitly set where you want to tick marks with plt.xticks:
- plt.xticks(np.arange(min(x), max(x)+1, 1.0))
- import numpy as np
- import matplotlib.pyplot as plt
- x = [0,5,9,10,15]
- y = [0,1,2,3,4]
- plt.plot(x,y)
- plt.xticks(np.arange(min(x), max(x)+1, 1.0))
- plt.show()
- start, end = ax.get_xlim()
- ax.xaxis.set_ticks(np.arange(start, end, stepsize))
- ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%0.1f'))
- import numpy as np
- import matplotlib.pyplot as plt
- import matplotlib.ticker as ticker
- x = [0,5,9,10,15]
- y = [0,1,2,3,4]
- fig, ax = plt.subplots()
- ax.plot(x,y)
- start, end = ax.get_xlim()
- ax.xaxis.set_ticks(np.arange(start, end, 0.712123))
- ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%0.1f'))
- plt.show()
沒有留言:
張貼留言