- Published on
pyechartsを使ってみた。
- Authors
- Name
- snuow
- @snuow_w
pyecharts
いいところ
表現がすごい豊か(中国語なのは、サンプルが中国語なため)
棒グラフ
from pyecharts import Bar attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80] bar = Bar("柱状图数据堆叠示例") bar.add("商家A", attr, v1, is_stack=True) bar.add("商家B", attr, v2, is_stack=True) bar.render()
カレンダーヒートマップ
import datetime import random from pyecharts import HeatMap begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) data = [ [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] for i in range((end - begin).days + 1) ] heatmap = HeatMap("日历热力图示例", "某人 2017 年微信步数情况", width=1100) heatmap.add( "", data, is_calendar_heatmap=True, visual_text_color="#000", visual_range_text=["", ""], visual_range=[1000, 25000], calendar_cell_size=["auto", 30], is_visualmap=True, calendar_date_range="2017", visual_orient="horizontal", visual_pos="center", visual_top="80%", is_piecewise=True, ) heatmap.render()
微妙だなと思うところ
結構ソースコードが長くなりがち。(plotly の Bar だとこれくらい。)
pandas のデータフレームと親和性があまりない。(リストに直さないといけない・・・)
pyecharts
データをリストにして、メソッドで x,y を追加していく。
from pyecharts import Bar attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80] bar = Bar("柱状图数据堆叠示例") bar.add("商家A", attr, v1, is_stack=True) bar.add("商家B", attr, v2, is_stack=True) bar.render()
plotly
- データフレームを指定して、カラム名を x,y にいれるだけ。簡単!
long_df = px.data.medals_long() fig = px.bar(long_df, x="nation", y="count", color="medal") fig.show()
- データフレームを指定して、カラム名を x,y にいれるだけ。簡単!
まとめ
- データ分析みたいにトライアンドエラーが発生しないならとてもよい。
- トライアンドエラーが発生するなら、ちょっと面倒かもしれない。