St_Hakky’s blog

Data Science / Human Resources / Web Applicationについて書きます

Pythonで使う可視化ライブラリまとめ

こんにちは。

PyCon2017のビデオを全部ではないですが、気になったタイトルのものだけ見ているんですけど、その中で面白いものをみつけたので紹介します。

PyCon2017:Python's Visualization Landscape

Pythonにはめちゃめちゃ沢山の可視化ライブラリがあります。

ぶっちゃけどれ使ったら良いんだみたいな感じになりますし、それぞれ特性はあるんだろうなぁとは思いつつも、「まぁmatplotlibとかseabornとかでいいか」みたいな感じになっちゃったり、「おぉーこれ便利じゃん」みたいな感じで、その場しのぎコードを書いたりしてあとで死にたくなります笑。

同じような思いはみんなもっているようで、PyCon2017で以下のプレゼンがされていました。

youtu.be

動画中で使われている、スライドは以下からみれます。

speakerdeck.com

最近見つけた以下の資料とかは、どんな時に何を使えばいいかが簡潔にまとまっています。これも参考になりました。

slideship.com

可視化ライブラリ一覧

ここで紹介されていた以下の可視化ライブラリの関係図がすごくわかりいやすかったです。

f:id:St_Hakky:20170624194044j:plain

紹介されているライブラリはちょいちょい触っていこうかなと思うんですが、一通りサイトを回ってみたので、リンクをカテゴリごとに以下に貼り付けていきます。

いくつかは触ったことがありますが、触ったことのないものを中心に、ぼちぼち触っていこうと思います。使ったらまた更新します。

Python Base

matplotlib

代表格であるmatplotlib。最初は結構分かりにくいというか、ちょっとこれもやりたいと思った時に「およ?」ってなることが多いものですが、一番使うと思います笑。

■インストール

正直、Anacondaを私は使うので、Anacondaをインストールした時点でmatplotlibが入っているのもあり、普通にmatplotlibをいれたことがありません(そして多分その方が色々いいと思います)。

もし単体でいれたい場合は、普通にpipではいるみたいですが、色々必要なものとかをインストールしないといけないので、詳しくは公式ページをみながらOSごとにやったほうがいいです。

Pandas

pandasユーザーの方なら結構知っている方もいると思いますが、pandasでも普通にDataFrameとかから直接可視化ができます。


seaborn

こんなことを思ったときとかに便利なやつです。

  • matplotlibで描くとちょっとめんどくさいなぁ
  • matplotlibで描くとダサいし、それを克服するの結構たいへんだなぁ
  • そんなに頑張って作る必要もないんだけどとりま可視化したい

私は一時期これをしって、matplotlibから逃げてました。正直これで結構なんとかなります(笑)。

インタラクティブとか複雑(?)じゃない、シンプルな可視化だけとりあえずしたくて、「手抜きして綺麗なのを作りたいんじゃおりゃー!!」って時に使います(笑)。

seabornのインストールは、以下の様な感じで出来ます。

pip install seaborn # pipで入れたい場合
conda install seaborn # anacondaを使っている場合

Galleryとかを見るとどんなグラフを作れるかがわかるんじゃないかと。numpyとかpandasとかlistとかは普通によしなに受け取ってくれますし、コレ超オススメです。

ggpy

basemap

cartopy

○Yellow brich

Vaex

Javascript Base

plotly

可視化ライブラリとしては有名なplotlyです。pythonから以外でも使えるのですが、とにかく綺麗にplotできるのが売りだと思います。プライベートな利用にはお金がかかるplotlyですが、ちょっと前になりますが、オープンソース化されてます

pythonから使用するためには、

pip install plotly

で入ります。

オンラインでの可視化のホスティングサービスが用意されているのが、plotlyの凄いところ。こちらからアカウントを作成したら、グラフをオンライン上でプロットして保存できます。

フリーでは、Publicな状態みたいですが、お金を払うとPrivateにもできます。

toyplot

bokeh

こちらの記事に紹介されているように、インタラクティブな可視化を行う際に便利なライブラリです。

インストールは、

conda install bokeh

で入ります。

bqplot

Jupyter Notebook

d3js

c3js

mpld3

Vega

d3po

Vincent

Altair

その他

YT

pygal

chaco

MayaVi

GlueViz