2019-12-14

Pythonで大きなデータ可視化に苦労している話

Matplotlibがデファクトになってしまっていて困る。遅い。

そしてQ&Aサイトを見ても、「Matplotlibは印刷品質目的にしているので速度を考慮していません。」とか、「そんな数をプロットしても見えないので意味ない」と回答が付くが、

それでもこちらは描きたい。

4000万画素などの中からおかしい値をとる画素がいくつあるかを調べようとするので4000万行のcsvが条件違いで数十、数百ファイルできるがプロットできない。(最近1億画素が出たらしい)

あとプロット後、変なところにプロットされた値と座標を知りたい。


Numpy、Pandasで計算するところまでは問題ない。Python遅いならJuliaがあると勧められたがグラフを描く段階でmatplotlibベースのPyPlotに戻ってやっぱり遅い。

遅いのにデフォルトの見た目が悪かったり、縦軸横軸を他と揃える手間だったり、カスタマイズするのに検索で探し回ることになる。

デフォルトの色も気になる。



いくつか使った感じだが、

  1. seabornはより遅くなる。カスタマイズしようとするとmatplotlib以上に悩むことになる。
  2. Altair、デフォルトプロットは好きだが、プロット数が多いと吹っ飛ぶ。
  3. bokeh、インタラクティブは好き。マウスカーソル置くと詳細が表示されるのは自分の求めてるのとあう。プロット数が多いと止まる。プロットがないところまで動くのは気になる。カスタマイズしようとするとハマる。
  4. Plotly、同じくインタラクティブは良い。bokehと同じくプロット数とカスタマイズでハマる。
  5. pyecharts、英語圏を諦め中国語圏を探しにいったらあった。バイドゥの作ってるECHARTSを使っている。Plotlyに近い印象。ちゃん数字も表示するので議論やすい。プロット数が多いと重い。


Qlik Senseの散布図はわかりやすい。地図のようにズームインズームアウトができる。拡大していくと数値もわかる。

ParaViewみたいな大きくても動くのがあればいいが。。。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん