У меня есть базовый DataFrame в пандах и я использую matplotlib для создания диаграммы

Я последовал совету, найденному в SO, а также в документации по маркировке значений по оси x, но они не изменятся по сравнению с индексами.

У меня есть это,


Presc_df_asc = Presc_df.sort_values('Total Items',ascending=True)
Presc_df_asc['Total Items'].plot.bar(x="Practice", ylim=[Presc_df_asc['Total Items'].min(), Presc_df_asc['Total Items'].max()])
plt.xlabel('Practice')
plt.ylabel('Total Items')
plt.title('practice total items')
plt.legend(('Items',),loc='upper center')

Из того, что я обнаружил, plot.bar(x="Practice" должен установить ось x, чтобы отображать значения в столбце практики под каждой полосой.

Но независимо от того, что я пробую, я получаю ось x, помеченную как индексы, с основной надписью «Практики».

0
James Smith 25 Ноя 2020 в 01:56

1 ответ

Лучший ответ

Чтобы команда построения графика могла получить доступ к столбцу "Practice", вам необходимо применить функцию построения графика ко всему фрейму данных (или к sub_dataframe, который содержит по крайней мере эти два столбца). В приведенном ниже коде используются соответствующие метки под каждой полосой. Аргумент rot=0 предотвращает поворот надписей на 90 °.

Presc_df_asc.plot.bar(x="Practice", y ="Total Items", 
                    ylim=[Presc_df_asc['Total Items'].min(), 
                    Presc_df_asc['Total Items'].max()], rot=0)
1
BenB 25 Ноя 2020 в 11:56