python:実験データをグラフで可視化 -bokehの基本的な使い方1-

Laptop Keyboard Screen WorkIT全般

前回の記事で、csvやエクセルデータの加工方法をまとめました。

集計後にはグラフ化して可視化することが必要になります。

pythonでのグラフの作図には、matplotlib, seabornなどがありますが、今回はbokehというパッケージを使用した作図方法を紹介します。

今回は、実験データで使用することの多いであろう、散布図、折れ線グラフ、棒グラフの3つの作成方法についてまとめました。

なお、作図についての詳細な設定は以下の記事を参照ください。

準備

実行環境の構築は以下のリンクを参照ください。

importおよびファイルの読み込みは以下のように行いました。

import pandas as pd
from bokeh.plotting import output_notebook,figure,show
from bokeh.models import ColumnDataSource, CDSView, GroupFilter
output_notebook() # jupyter中にbokehの結果を表示するのに必要

# csvファイルの読み込んでデータフレーム化
csv_df = pd.read_csv('exp_data.csv')

# 読込んだファイルを表示
csv_df.head()

散布図

pandasのデータフレームを一度bokeh用のデータにColumnsDataSourceで変換しています。

変換せずとも作図できる方法はありますが、後々便利なのでこの方法を今回は紹介しています。

# データフレームをbokeh読み込み用に変換
source = ColumnDataSource(csv_df)
# グラフサイズおよびタイトルの設定
p = figure(plot_height=500,plot_width=500,title='テストデータの作図')
# 散布図
p.circle(x='材料A添加量',y='引張強度',source=source,legend_label='ラベル名')

show(p)

折れ線グラフ

散布図のcircleをlineにすることで折れ線グラフにすることが可能です。

# データフレームをbokeh読み込み用に変換
source = ColumnDataSource(csv_df)
# グラフサイズおよびタイトルの設定
p = figure(plot_height=500,plot_width=500,title='テストデータの作図')
# 折れ線グラフ
p.line(x='材料B添加量',y='引張強度',source=source,legend_label='ラベル名')

show(p)

散布図+折れ線グラフ

若干面倒ですが、散布図と折れ線グラフを組み合わせて、線付きプロットを作図できます。

(他にもいい方法があるかも?)

# データフレームをbokeh読み込み用に変換
source = ColumnDataSource(csv_df)
# グラフサイズおよびタイトルの設定
p = figure(plot_height=500,plot_width=500,title='テストデータの作図')
# 散布図及び折れ線グラフ
p.circle(x='材料B添加量',y='引張強度',source=source,legend_label='ラベル名')
p.line(x='材料B添加量',y='引張強度',source=source,legend_label='ラベル名')

show(p)

棒グラフ

figure(x_range=)で横軸の値を指定しておかないと、vbarでxの値を指定するだけでは作図されないようです。

# データフレームをbokeh読み込み用に変換
var_df = csv_df.iloc[:5,:]
source = ColumnDataSource(var_df)

# グラフサイズおよびタイトルの設定
p = figure(x_range= var_df['sample_name'].unique(),plot_height=500,plot_width=1000,title='テストデータの作図')

p.vbar(x='sample_name', top='引張強度',source=source,width=0.5)

show(p)

コメント

タイトルとURLをコピーしました