How to change date format in Python Pandas bar plot?

Sometimes, we want to change date format in Python Pandas bar plot, we use strftime.

In this article, we’ll look at how to change date format in Python Pandas bar plot, we use strftime.

How to change date format in Python Pandas bar plot?

To change date format in Python Pandas bar plot, we use strftime.

For instance, we write

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.ticker as ticker

start = pd.to_datetime("5-1-2012")
idx = pd.date_range(start, periods= 365)
df = pd.DataFrame({'A':np.random.random(365), 'B':np.random.random(365)})
df.index = idx
df_ts = df.resample('W', how= 'max')

ax = df_ts.plot(kind='bar', x=df_ts.index, stacked=True)

ticklabels = ['']*len(df_ts.index)
ticklabels[::4] = [item.strftime('%b %d') for item in df_ts.index[::4]]
ticklabels[::12] = [item.strftime('%b %dn%Y') for item in df_ts.index[::12]]
ax.xaxis.set_major_formatter(ticker.FixedFormatter(ticklabels))
plt.gcf().autofmt_xdate()

plt.show()

We call item.strftime with the date format to format the item datetime into the date time string we want.

%b is the abbreviated month name like Jan, Feb, etc,

%d is the day of the month as a 2 digit number.

%Y is the 4 digit year number.

We have

ax.xaxis.set_major_formatter(ticker.FixedFormatter(ticklabels))

to set the axes formatter.

And we call autofmt_xdate to format the dates.

Conclusion

To change date format in Python Pandas bar plot, we use strftime.