2016-08-25 2 views
2

производят гистограмму со следующим кодом:Установка Порядок столбцов с Matplotlib гистограммой

Temp_Counts = Counter(weatherDFConcat['TEMPBIN_CON']) 
df = pd.DataFrame.from_dict(Temp_Counts, orient = 'index') 
df.plot(kind = 'bar') 

Он производит следующую гистограмму:

enter image description here

Я хотел бы изменить упорядочить столбцы. Я пробовал несколько разных вещей, которые, похоже, не работают. DataFrame Я работаю с выглядит следующим образом:

enter image description here

Я создаю barplot последнего столбца в dataframe изображенного. Было бы высоко оценено любое направление или идеи альтернативных методов создания барплота, которые позволили бы мне изменить порядок оси. Поскольку он существует, его трудно интерпретировать.

ответ

2

Я думаю, что вы можете использовать value_counts с sort_index и последней Series.plot.bar:

weatherDFConcat['TEMPBIN_CON'].value_counts().sort_index().plot.bar() 

Или, если вы хотите использовать решение:

Temp_Counts = Counter(weatherDFConcat['TEMPBIN_CON']) 
df = pd.DataFrame.from_dict(Temp_Counts, orient = 'index').sort_index() 
df.plot(kind = 'bar') 

Пример:

import matplotlib.pyplot as plt 

weatherDFConcat = pd.DataFrame({'TEMPBIN_CON':['30 degrees or more', '-15 to -18 degrees', '-3 to 0 degrees', '15 to 18 degrees', '-15 to -18 degrees' 
]}) 
print (weatherDFConcat) 
      TEMPBIN_CON 
0 30 degrees or more 
1 -15 to -18 degrees 
2  -3 to 0 degrees 
3 15 to 18 degrees 
4 -15 to -18 degrees 

weatherDFConcat['TEMPBIN_CON'].value_counts().sort_index().plot.bar() 
plt.show() 
+0

Как doeas это работает? Или вам нужен заказ? – jezrael

+0

Добавление .sort_index() отлично работает на мои данные - спасибо! – Justin

1

Я предлагаю вам разделить TEMPBIN_CON на две части: LOWER_TEMP и HIGHER_TEMP. Затем сортировать DataFrame по этим столбцам с помощью:

sorted = df.sort_values(by=['LOWER_TEMP', 'HIGHER_TEMP']) 

, а затем вы делаете сюжет, как вы уже сделали:

sorted.plot(kind='bar')