dtam
dtam

Reputation: 251

Matplotlib bar graph axes values

I want to have a bar graph showing x values ranging from 0-9. The bars should have the same space, and the problem I'm having is fitting the 10 values together while all have the same area space for bars.

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(10, 6))
results_plot = plt.subplot2grid((10, 6), (0,0), colspan=8, rowspan=2)
results_plot.set_title("Results")

res_x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
res_y = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

rects = plt.bar(res_x, res_y, color='b')
results_plot.set_xbound(lower=0.0, upper=9.0)
results_plot.set_ybound(lower=0.0, upper=100.0)


results_plot2 = plt.subplot2grid((10, 6), (3,0), colspan=8, rowspan=2)
results_plot2.set_title("Results 2")

res_x2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
res_y2 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

rects2 = plt.bar(res_x2, res_y2, color='b')
results_plot2.set_xbound(lower=-.5, upper=9.5)
results_plot2.set_ybound(lower=0.0, upper=100.0)

plt.show()

enter image description here

So in short I want to see all the x values on the axes (like in figure 1) with each having the same bar space (figure 2).

Upvotes: 0

Views: 84

Answers (1)

Rutger Kassies
Rutger Kassies

Reputation: 64443

If you only want a tick below each bar, you can set the xticks directly using your res_x. Add:

results_plot2.set_xticks(res_x)

enter image description here

Upvotes: 2

Related Questions