このエントリは Fintalk Advent Calendar 2020の7日目です。
今年は3つも割当たっているので、Covid-19 のデータで件数とその移動平均をグラフに描画する、というのを3回シリーズでやりたいと思います。
Jupyter notebooks + python でやる方法はいっぱい情報があると思うので、ここでは Kotlin でやっていきます。
Kotlin + Jupyter notebooks については去年の Fintalk Advent Calendar のエントリとして書きました。
Kotlin + Jupyter notebooks で給与の額面から手取りを求めてみる
時間が経ってるので、今回の Kotlin + Jupyter notebooks のセットアップ手順を載せておきます。
グラフの描画には lets-plot-kotlinを使います。
Kotlin Jupyter Kernel にバンドルされていて一緒にインストール&セットアップがされているので
lets_plot()に渡すデータの型は Map<*, *> です。
例えばこんな感じ。
点を描画するレイヤーを追加するには geom_point()を使います。
lambda(この中の this は PointMapping) で x軸、y軸のデータを Map の key 名で指定します。
線を描画するレイヤーを追加するには geom_line()を使います。
点と線両方描画したいなら、両方のレイヤーを追加すればOKです。
今年は3つも割当たっているので、Covid-19 のデータで件数とその移動平均をグラフに描画する、というのを3回シリーズでやりたいと思います。
Jupyter notebooks + python でやる方法はいっぱい情報があると思うので、ここでは Kotlin でやっていきます。
Kotlin + Jupyter notebooks については去年の Fintalk Advent Calendar のエントリとして書きました。
Kotlin + Jupyter notebooks で給与の額面から手取りを求めてみる
時間が経ってるので、今回の Kotlin + Jupyter notebooks のセットアップ手順を載せておきます。
$ python3 -m venv venv $ source venv/bin/activate (venv) $ pip install --upgrade pip setuptools (venv) $ pip install numpy scipy matplotlib Pillow ipython[all] (venv) $ pip install jupyter 以前の kotlin kernel が残っていたので venv の方をみるように一度削除 (venv) $ jupyter kernelspec list (venv) $ jupyter kernelspec uninstall kotlin (venv) $ pip install kotlin-jupyter-kernel (venv) $ jupyter notebook
グラフの描画には lets-plot-kotlinを使います。
Kotlin Jupyter Kernel にバンドルされていて一緒にインストール&セットアップがされているので
%use lets-plot
だけで使えます。 lets_plot(data)
でプロットを作成し、これにレイヤーを追加していきます。 lets_plot()に渡すデータの型は Map<*, *> です。
例えばこんな感じ。
val data = mapOf( "x" to listOf(0, 1, 2, 3), "y" to listOf(1, 5, 2, 4) )
これは表にするとこういうデータに対応しています。 x | y |
---|---|
0 | 1 |
1 | 5 |
2 | 2 |
3 | 4 |
点を描画するレイヤーを追加するには geom_point()を使います。
lambda(この中の this は PointMapping) で x軸、y軸のデータを Map の key 名で指定します。
%use lets-plot val data = mapOf( "x" to listOf(0, 1, 2, 3), "y" to listOf(1, 5, 2, 4) ) lets_plot(data) + geom_point(data, size=5) { x = "x"; y ="y" }
線を描画するレイヤーを追加するには geom_line()を使います。
点と線両方描画したいなら、両方のレイヤーを追加すればOKです。