IT系メモ

興味のあったことや、勉強したことなどをメモしていきます。

Pythonグラフ描画にAltairを使ってみる

matplotlibがデファクトになっているが、調整するのにかなり時間がかかるため、Altairを変わりに使ってみた。

matplotlibではNumpyであってもとりあえず描画してくれるが、AltairはPandasでなければならない。公式サイトでギャラリーを見る際には、元のDataFrameがわからなければ、何を指定しているのかわからないので、JupyterLabで表示しながら試すことをおすすめする。

 

Altairのメリット

  1. 色使いがよい。
  2. デフォルトの描画のセンスがいい
  3. 棒グラフが太くない
  4. 複数のグラフを並べやすい

 

Altairのデメリット

  1. ネット検索で例が少ない。(日本語でも英語でも)
  2. 細かい調整をする際の手間がかかる
  3. 下で動いているvegaを知らないとわからないことがある。
  4. 描画速度は早くない。

 

f:id:qpci32siekqd:20190407215154j:plain

 

デフォルトでの記載が多いように思うが、matplotlibでも結局複数行に渡って記載することになっていくので、グループ分けがされており、一度理解してしまえば整理されており読みやすい。

描画したいDataFrameと、グラフの種類、X軸とY軸のデータ指定と、ここまではそれほど複雑ではない。

 

f:id:qpci32siekqd:20190407223341j:plain

colorは色の名前を指定するように最初思うだろうが、データ名を指定すると、勝手に色分けしてくれる。色を指定したい場合は別途設定が必要となる。

 

f:id:qpci32siekqd:20190407223756j:plain

DataFrameではなく、URLでデータを取ってきた場合は、データの型を指定する必要がある。

Q:何枚、何個など数えた数

O:並び順に意味があるもの。大きさでLL→L→Sといった具合

N:性別や血液型など、分類データ

T:時刻データ

 

f:id:qpci32siekqd:20190407224630j:plain

ざっくりと最初にデータを見たいときは、省略形で問題ないが、より細かく設定したい場合は、省略しない形で記載する。

 

f:id:qpci32siekqd:20190407224922j:plain

複数の描画方法で、1つにに重ねたい場合があるが、プロットを複数用意して、+でかけばいい。直感的でわかりやすい。

 

f:id:qpci32siekqd:20190407225126j:plain

encodeの中でデータを演算することができる。ちょっとプロットすると数が多すぎてわかりにくくなったときに使える。

markpoint()のオプションはかなりあるが、設定すればどうなるか詳しい説明がなく、まだよくわかっていない。

 

f:id:qpci32siekqd:20190407225747j:plain

altair.Xに細かい設定があるので、そこに合わせてtitleやscaleを設定する。

 

f:id:qpci32siekqd:20190407231619j:plain

複数のグラフを並べるときは、Altair.hconcat()やrepeat()を使う。