「ipython notebook」を使って簡単にタスク管理してみる。(3)
タスクの追加状況をグラフにしてみました。
以下を追加します。
import json import pandas_highcharts.core
js_name_1 = '//code.highcharts.com/highcharts' js_name_2 = '//code.highcharts.com/modules/exporting'
def graph_render(data): chart1 = pandas_highcharts.core.serialize(data, title=title_name, zoom="xy", output_type='dict') html = HTML(''' <div id="chart1" style="min-width: 400px; height: 400px; margin: 0 auto"></div> <script> require.config({ paths: { highcharts: '%s', exporting: '%s' } }); require(['highcharts','exporting'], function(){ $('#chart1').highcharts(%s); }); </script> ''' %(js_name_1, js_name_2, json.dumps(chart1))) return html def graph_task(): data = read_task() data['datetime'] = pandas.to_datetime(data['created_at']) data['count'] = data['name'].count() data = data.groupby([data['datetime'].dt.year, data['datetime'].dt.month, data['datetime'].dt.day])['count'].count() data = pandas.DataFrame(data) return graph_render(data)
それで、graph_task() を呼び出すと
こんな感じに表示されます。
pandasのgroupbyで、日付ごとにグルーピングして
pandas_highchartsで、highchart用のjsonに変換。
それからhighchartsで、グラフを描画しています。
https://pypi.python.org/pypi/tasks-for-notebook
https://github.com/llby/tasks-for-notebook
こちらの方にも、そのうち追加したいと思います。