Lightning

lightningという可視化ライブラリを試してみます。

可視化自体はサーバに投げるスタイルのようです。 まあ複雑な可視化は結局データとビューが一体化したようなものになるし、それはそれでわからんでもないところ。 サーバ側に新しいデータタイプを作って公開すればみんな幸せでしょということでしょうか。ふむ。まあわからんでもないです。

パブリックなサーバはpublic.lightning-viz.orgで公開されています。 python ローカルで走らせたい場合はlocal=Trueでやればよいようです。それぞれ多少機能制限があるようで、フル機能を使いたければサーバを立てましょうとのこと。

In [1]:
from lightning import Lightning
lgn = Lightning(ipython=True, host='http://public.lightning-viz.org')
#lgn = Lightning(ipython=True, local=True)
Lightning initialized
Connected to server at http://public.lightning-viz.org
In [2]:
import numpy as np
In [3]:
x=np.linspace(0,3,1000)
y=np.sin(x)
lgn.scatter(x,y,size=1)
/usr/local/lib/python2.7/site-packages/IPython/kernel/__init__.py:13: ShimWarning: The `IPython.kernel` package has been deprecated. You should import from ipykernel or jupyter_client instead.
  "You should import from ipykernel or jupyter_client instead.", ShimWarning)
Out[3]:

シンプルでいいんだけどそのぶんカスタマイズがよくわかりません。というか、基本、サーバを作りこんで、クライアントからのカスタマイズはしない、という思想なのかもしれません。

サーバはJavasciptで書くらしいです。うーん。まあhtmlを出力する以上しょうがないんですかね。

他のライブラリにない特徴としては画像表示があります。matplotlibとの違いは拡大縮小ができるかどうかぐらい? おっと、しかもローカルモードでは非対応らしいです。うーん。

In [4]:
from PIL import Image
In [5]:
a=np.asarray(Image.open("sample.jpg"))
In [6]:
lgn.image(a)
Out[6]:

独自の可視化を作ると可能性が広がるんでしょうかね。

In [ ]: