Съезжают названия столбцов в столбчатой диаграмме
Рисую столбцы по данным. Каждому столбцу должна соответствовать подпись (название), но они, почему-то, "съезжают". Не могу понять, как это исправить.
+---------------------+-------+-------+-------+-------+
| Сфера | 1 | 2 | 3 | 4 |
+---------------------+-------+-------+-------+-------+
| Сфера полностью | 27,64 | 24,8 | 23,38 | 16,67 |
| Общественные | 24,28 | 26,1 | 20,29 | 20,67 |
| Потребительские | 30,65 | 26,69 | 21,91 | 15,28 |
| Производственные | 28,03 | 25,46 | 22,4 | 16,48 |
| Профессиональные | 27,39 | 24,81 | 23,04 | 16,09 |
| Распределительные | 28,44 | 24,63 | 23,36 | 16,74 |
| Медицина | 28,01 | 26,25 | 22,52 | 17,07 |
| Образование | 26,75 | 24,62 | 25,8 | 20,42 |
| Соц_обеспечение | 28,75 | 22,13 | 29,84 | 23,41 |
| Гостиницы | 29,7 | 26,21 | 21,81 | 15,23 |
| Рестораны | 33,17 | 27,96 | 22,15 | 15,4 |
| Лизинг | 28,03 | 25,46 | 22,4 | 16,48 |
| Бизнес_консалтинг | 28,24 | 24,93 | 22,75 | 18,92 |
| Маркетинг | 29,09 | 27,19 | 20,28 | 15,3 |
| Недвижимость | 30 | 25,91 | 20,81 | 14,14 |
| Страхование | 27,26 | 24,78 | 23,11 | 15,86 |
| Юристы | 27,41 | 24,01 | 22,71 | 18,25 |
| Курьеры | 29,02 | 26,44 | 22,49 | 15,46 |
| Логисты | 28,16 | 24,43 | 23,45 | 16,7 |
| Телеком | 28,54 | 22,79 | 24,11 | 17 |
| Транспорт_перевозки | 29,82 | 25,61 | 22,97 | 17,7 |
+---------------------+-------+-------+-------+-------+
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
from openpyxl import workbook #pip install openpyxl
from openpyxl import load_workbook
import numpy as np
df = pd.read_excel('Сфера.xlsx', sheet_name='Свод2')
df_harakteristika1 = pd.read_excel('Сфера.xlsx', sheet_name='Свод2', usecols=df.iloc[:, 1:3])
def opisatelnie(color, df1, name_of_histogram, path):
for col in df1.columns:
plt.figure(figsize=(10, 7))
patches = plt.bar(df['Сфера'], df1[col], edgecolor='black')
plt.title(name_of_histogram.format(str(col)))
plt.xticks(df['Сфера'], rotation=45)
plt.subplots_adjust(bottom=0.2, top=0.70)
jet = plt.get_cmap(color, len(patches))
for i in range(len(patches)):
patches[i].set_facecolor(jet(i))
plt.draw()
plt.savefig(path.format(
str(col)))
plt.close()
opisatelnie('BuPu', df_harakteristika1, "Характеристика, {}, Сфера.png", "C:/Users/Я/source")
