2016-01-19 3 views
1

В рамках некоторого базового анализа данных я пытаюсь использовать bokeh для отображения некоторых диаграмм в формате HTML. Со следующим кодом я создал очень простую гистограмму, используя кадр данных pandas с 26 столбцами и 594 строками. Мой вопрос: Как я могу сортировать его по убыванию? Прямо сейчас граф сортируется по алфавиту порядка столбца «МАТЕРИАЛ ГРУПП». Я попробовал почти все, но я не могу понять это ...Построение сортированной бар-диаграммы с pandas & bokeh

import pandas as pd 
from bokeh.charts import Bar, output_file, show 
from bokeh.charts.attributes import cat 
chart1 = Bar(df,values='SCRAP', 
      label=cat(columns='MATERIAL GROUP',sort=True), 
      plot_width=1250,agg='sum')  
output_file('DMSY_November_2015.html') 
show(chart1) 
+0

Было бы хорошо иметь решение, которое не зависит от панд. –

ответ

0

Найдено решение путем создания отсортированный DataFrame и использовать его для построения столбиковых:

import pandas as pd 
from bokeh.charts import Bar, output_file, show 
from bokeh.charts.attributes import cat 

#Creating the DataFrame for chart1: Filtering/Grouping/Sorting 
df_chart1 = df_rolling[df_rolling.SCRAP>0] 
df_chart1 = df_chart1.groupby(by='MATERIAL GROUP',as_index=False) ['SCRAP'].sum() 
df_chart1 = df_chart1.sort_values(by='SCRAP',ascending=False) 

#Plotting chart1 
chart1 = Bar(df_chart1,values='SCRAP', 
      label=cat(columns='MATERIAL GROUP',sort=False), 
      plot_width=1250) 

output_file('DMSY_November_2015.html') 
show(chart1)