Matplotlib: Установка меток оси x на фигуру для линейчатого графика

#python #matplotlib

#python #matplotlib

Вопрос:

У меня есть гистограмма для категориальных данных; которая содержит 173 различные категории. Я хочу уместить все данные в одну фигуру. Код выглядит следующим образом:

         series = self.mainDataFrame[cat_col].value_counts()
        columns = series.index.to_list()
        values = series.values
        y_pos = np.arange(len(columns))
        plt.bar(y_pos, values, align='center', alpha=0.5)
        plt.xticks(y_pos, columns, fontsize='xx-small')
        plt.ylabel('Frequency')
        plt.title("Categorical Column:{0}".format(cat_col))
  

Это результат, который я получаю:

введите описание изображения здесь

В основном я хочу две вещи; Я хочу, чтобы метки по оси x были удобочитаемыми (каждая из них состоит из трех буквенных слов), а столбцы не были настолько загромождены, чтобы некоторые из них отображались как склеенные вместе. Я попытался увеличить ширину фигуры, сохранив ширину полосы одинаковой, но мне это не удалось. Что касается размера шрифта метки, то это то, что я получаю даже с plt.xticks(y_pos, columns, fontsize='xx-small') . Как я могу сделать этот рисунок более читаемым?

Комментарии:

1. можете поворачивать метки галочек, смотрите здесь

2. На самом деле, я тоже пробовал это, но метки все еще перекрываются.

3. сколько у вас батончиков ? можете ли вы предоставить некоторые данные об игрушках ?

4. Возможно, вы можете исключить половину оси x с помощью plt.xlim . Их частота, по-видимому, отсутствует.

5. у вас должны быть все метки на осях? или вы можете игнорировать некоторые?