Skip to content Skip to sidebar Skip to footer

Not Write Out All Dates On An Axis, Matplotlib

Take a look at this example: import datetime as dt from matplotlib import pyplot as plt import matplotlib.dates as mdates x = [] d = dt.datetime(2013, 7, 4) for i in range(30):

Solution 1:

You can specify an interval argument to the DateLocator as in the following. With e.g. interval=5 the locator places ticks at every 5th date. Also, place the autofmt_xdate() after the bar method to get the desired output.

import datetime as dt
from matplotlib import pyplot as plt 
import matplotlib.dates as mdates
x = []
d = dt.datetime(2013, 7, 4)
for i inrange(30):
        d = d+dt.timedelta(days=1)
        x.append(d)

y = range(len(x))
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator(interval=5))
plt.bar(x, y, align='center') # center the bars on their x-values
plt.title('DateLocator with interval=5')
plt.gcf().autofmt_xdate()
plt.show()

Bar plot with ticks at every 5th date.

With interval=3 you will get a tick for every 3rd date:

Bar plot with ticks at every 3rd date.

Post a Comment for "Not Write Out All Dates On An Axis, Matplotlib"