YusufChowdhury
YusufChowdhury

Reputation: 349

Python matplotlib - setting x-axis scale

I have this graph displaying the following:

plt.plot(valueX, scoreList)
plt.xlabel("Score number") # Text for X-Axis
plt.ylabel("Score") # Text for Y-Axis
plt.title("Scores for the topic "+progressDisplay.topicName)
plt.show()

valueX = [1, 2, 3, 4] and scoreList = [5, 0, 0, 2]

I want the scale to go up in 1's, no matter what values are in 'scoreList'. Currently get my x-axis going up in .5 instead of 1s.

How do I set it so it goes up only in 1?

Upvotes: 31

Views: 271839

Answers (3)

dustyjuicebox
dustyjuicebox

Reputation: 277

Hey it looks like you need to set the x axis scale.

Try

matplotlib.axes.Axes.set_xscale(1, 'linear')

Here's the documentation for that function

Upvotes: 9

Amin Heydari Alashti
Amin Heydari Alashti

Reputation: 1021

Below is my favorite way to set the scale of axes:

plt.xlim(-0.02, 0.05)
plt.ylim(-0.04, 0.04)

Upvotes: 22

Novel
Novel

Reputation: 13729

Just set the xticks yourself.

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

or

plt.xticks(valueX)

Since the range functions happens to work with integers you could use that instead:

plt.xticks(range(1, 5))

Or be even more dynamic and calculate it from the data:

plt.xticks(range(min(valueX), max(valueX)+1))

Upvotes: 43

Related Questions