matplotlib xticks labels overlap

user977828 picture user977828 · Sep 5, 2012 · Viewed 12.3k times · Source

I am not able to get nicer spaces between the xticks with the following code:

import random
import matplotlib.pyplot as plt

coverages = [random.randint(1,10)*2] * 100
contig_names = ['AAB0008r'] * len(coverages)
fig = plt.figure()
fig.clf()
ax = fig.add_subplot(111)

ax.yaxis.grid(True, linestyle='-', which='major', color='grey', alpha=0.5)

ind = range(len(coverages))
rects = ax.bar(ind, coverages, width=0.2, align='center', color='thistle')
ax.set_xticks(ind)
ax.set_xticklabels(contig_names)
#function to auto-rotate the x axis labels
fig.autofmt_xdate()

plt.show()

How to get more space between the xticks so they do not look like overlapped anymore?

Thank you in advance.

Answer

imsc picture imsc · Sep 5, 2012

You can try changing the figure size, the size of the xticklabels, their angle of rotation, etc.

# Set the figure size
fig = plt.figure(1, [20, 8])

# Set the x-axis limit
ax.set_xlim(-1,100)
# Change of fontsize and angle of xticklabels
plt.setp(ax.get_xticklabels(), fontsize=10, rotation='vertical')