Skip to content Skip to sidebar Skip to footer

Overlapping Axis Labels In Pandas Python Bar Chart

Is it possible to create space between my axis labels? They are overlapping (30 labels crunched together) Using python pandas... genreplot.columns =['genres','pct'] genreplot = gen

Solution 1:

I tried recreating your problem but not knowing what exactly your labels are, I can only give you general comments on this problem. There are a few things you can do to reduce the overlapping of labels, including their number, their font size, and their rotation.

Here is an example:

import pandas as pd
import numpy as np
import matplotlib.pyplotas plt

genreplot = pd.DataFrame(columns=['genres', 'pct'])
genreplot.genres = np.random.random_integers(1, 10, 20)
genreplot.pct = np.random.random_integers(1, 100, 20)
genreplot = genreplot.set_index(['genres'])

ax = genreplot.plot(kind='barh', width=1)

Now, you can set what your labels 5

pct_labels = np.arange(0, 100, 5)
ax.set_xticks(pct_labels)
ax.set_xticklabels(pct_labels, rotation=45)

For further reference, you can take a look at this page for documentation on xticks and yticks:

Solution 2:

If your labels are quite long, and you are specifiying them from e.g. a list, you could consider adding some new lines as well:

labels = ['longgggggg_labelllllll_1', 'longgggggg_labelllllll_2']

new_labels = [label.replace('_', '\n') for label in labels]

new_labels
['longgggggg
  labelllllll
  1', 'longgggggg
  labelllllll
  2']

Post a Comment for "Overlapping Axis Labels In Pandas Python Bar Chart"