1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Anaconda】Panelでダッシュボード作成

Last updated at Posted at 2019-09-03

#Panelとは
Anacondaで作ったウィジェットや図、グラフを綺麗に複数並べて配置できるPython Library(PiViz 系)。
Jupyter Notebookでも使えるし、PythonアプリだけじゃなくHTML/JavaScriptアプリケーションなんかも組み込める、有望株です。

以下に書くのは、下記サイトの記述から学んだことです。
https://anaconda.org/pyviz/panel
https://panel.pyviz.org/
使用感はおいおい書いていきます。

#対応Pythonバージョン
Python2.7
Python3.x
Linux, Windows, MacのどれでもOK

#インストール方法
各自のAnacondaターミナルで

conda install -c pyviz panel 

conda install -c pyviz/label/earthsim panel 

conda install -c pyviz/label/dev panel

を実行。
Jupyter Labを使いたい場合は追加で以下を実行

conda install -c conda-forge jupyterlab
jupyter labextension install @pyviz/jupyterlab_pyviz

#起動方法
まずサンプルの読み込み(↑の公式にあるサンプルです)

panel examples
cd panel-examples

そしてJupyter NotebookかJupyter Labを起動

jupyter notebook

jupyter lab

#コーディングサンプル
以下サイト参考。Jupyter Lab前提。Altairも使ってる
https://towardsdatascience.com/how-to-build-a-time-series-dashboard-in-python-with-panel-altair-and-a-jupyter-notebook-c0ed40f02289

import panel as pn
import altair as alt
from altair import datum
import pandas as pd
from vega_datasets import data
import datetime as dt

alt.renderers.enable(‘default’)
pn.extension(‘vega’)
# 会社名リストを作る
tickers = [‘AAPL’, ‘GOOG’, ‘IBM’, ‘MSFT’]
# ドロップリストで選択できるようにする
ticker = pn.widgets.Select(name=’Company’, options=tickers)
# 日付のスライダーも作っちゃう
date_range_slider = pn.widgets.DateRangeSlider(
name=’Date Range Slider’,
start=dt.datetime(2001, 1, 1), end=dt.datetime(2010, 1, 1),
value=(dt.datetime(2001, 1, 1), dt.datetime(2010, 1, 1))
)
title = ‘### Kabuka Dashboard’
subtitle = ‘Kabuka to Kaisyamei ga deruyo’
@pn.depends(ticker.param.value, date_range_slider.param.value)


def get_plot(ticker, date_range):
     # データをロードし整形
     df = source # define df
     df[‘date’] = pd.to_datetime(df[‘date’])
     # 日付フィルタ反映
     # var中の開始終了日を保持
     start_date = date_range_slider.value[0] 
     end_date = date_range_slider.value[1] 
     # データフレームをマスキング
     mask = (df[‘date’] > start_date) & (df[‘date’] <= end_date)
     df = df.loc[mask] # filter the dataframe
     # Altairチャートを作る
     chart = alt.Chart(df).mark_line().encode(x=’date’, y=‘price’,      tooltip=alt.Tooltip([‘date’,’price’])).transform_filter(
(datum.symbol == ticker) # this ties in the filter 
)
     return chart

dashboard = pn.Row(pn.Column(title, subtitle, ticker, date_range_slider),
get_plot # 上で作った機能が動くよ
)

#活用サンプル
Bokehサーバ使ってインタラクティブさに拍車をかけてる方もいますね。
https://panel.pyviz.org/gallery/demos/glaciers.html#gallery-glaciers

以上

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?