背景
箱ひげが必要になった
その選択肢を考えると以下で
- 追加のビジュアル
- カスタムビジュアル作る
- Python
- R
Python は勉強中でもあったので物は試しとやってみた。
概要
- 利用例二点
- 躓きと対処
SampleData
height | age | binary |
---|---|---|
172 | 25 | 動物 |
170 | 22 | 人 |
169 | 42 | 動物 |
175 | 49 | 人 |
184 | 38 | 人 |
163 | 29 | 人 |
174 | 35 | 動物 |
172 | 22 | 人 |
189 | 21 | 人 |
179 | 43 | 人 |
171 | 44 | 動物 |
簡単な利用例
matplotlib.pyplot.boxplot(dataset, labels = dataset.columns)
matplotlib.pyplot.show()
labels 渡さなければ配列添え字
グルーピングしながら渡す例
matplotlib.pyplot.rcParams['font.family'] = 'Meiryo'
ages = [group['age'] for name, group in dataset.groupby('binary')]
matplotlib.pyplot.boxplot(ages, labels=set(dataset['binary']), autorange=True, showmeans=True)
matplotlib.pyplot.show()
python 補足
matplotlib.pyplot.rcParams['font.family'] = 'Meiryo'
日本語表示用
ages = [group['age'] for name, group in dataset.groupby('binary')]
'binary' でグルーピングしたデータを用意
set(dataset['binary'])
keys ・・あ、グルーピングしたとこにkeys あったね・・groups.keys() でも
躓きポイントとか
- 動かないときは、エディターで Python 実行させて確認するのが手っ取り早い
- Python 環境で動いたら、再度貼り付けて、再実行
- 出力場所は %userprofile%\PythonEditorWrapper_{uid}
- 後で勝手に削除されてるような感じ?
- エディタでなら import 済の部分は見られるように思うが、Preamble ではなさそう
- dataset として Preamble されてるものを編集は出来ないので、ものによっては Python 側で加工が必要
- グルーピングの例 のようにして、dataset から取得・整形すればOK
- 日本語が化けたら、フォント設定。pythonの話。
動作例
一呼吸置く感じで、ちょっと微妙。
ただ、キャッシュが効けば速くはなるみたい?
箱ひげが Python で、散布図とスライサーが標準のビジュアル
参考
あとがき
データ点数減らせば速いのかなと考えていたので、あらかじめパーセンタイル計算しておけば速いんじゃね?と思ったわけだが・・
データ量よりも、Python との連携が重いって感じなので、使いどころ次第ですね。
あと、Python だと以下のように、barchart で書く方法もあるんだな、と勉強になった
このままじゃ Candlestick(箱ひげ) には似ても似つかないですが