Кажется, вы просто хотите нарисовать гистограмму и установить правильные метки. df_training.hist
уже dr aws гистограмма, но с 0,1,2, ... в качестве x-меток. Вы можете изменить это, позвонив по номеру plt.xticks
. Поскольку центр столбцов находится в позициях, 0,5,1,5,2,5, ... при установке отметок все выравнивается.
Поскольку ваши данные содержат только значения от 0 до 6, лучше всего 7 бинов, поэтому 8 границ, hist
можно назвать bins=range(8)
. По умолчанию bins=10
, что определенно не то, что вы хотите.
В приведенном ниже коде я удалил линии x-grid, так как они мешают и не очень нужны. Цвет края установлен ec='white'
, чтобы лучше различать guish баров. Столбец 'emotion' в df_training заполнен случайными данными.
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
labels = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise','neutral']
df_training = pd.DataFrame( {'emotion': np.random.randint(0, 7, 100)})
emo = df_training.hist(column='emotion', ec='white', bins=range(8))
plt.grid(False, axis='x')
plt.xticks(ticks=np.arange(0.5,6.6,1), labels=labels)
plt.show()