笹川大河
Taiga Sasagawa
Таига Сасагава

筑波大学
理工情報生命学術院 生命地球科学研究群
環境科学学位プログラム
流域管理研究室 博士 (前期) 課程 2年

Master's Program in Environmental Sciences,
Degree Programs in Life and Earth Sciences,
Graduate School of Science and Technology,
University of Tsukuba.

Магистерская программа в области наук об окружающей среде,
Дипломные программы в области наук о жизни и земле,
Высшая школа науки и технологий,
Университет Цукуба

matplotlibを使って箱ひげ図+αを作成したい

python, matplotlibライブラリのみを使って, 少し手のこんだ箱ひげ図を作成していきます.

Taiga Sasagawa

memo

import matplotlib.pyplot as plt

a = [100, 1000, 2000, 3000, 10000, 20000, 30000, 100000, 200000, 1000000]
b = [100, 1000, 2000, 3000, 10000, 20000, 30000, 100000, 200000, 1000000]

points = (a, b)
fig, ax = plt.subplots()

ax.boxplot(points)
ax.set_xticklabels(['a', 'b'])
ax.plot(1, 19243, marker='x', color='red')
ax.plot(2, 1025, marker='o', color='blue', fillstyle='none')

plt.title('Box plot')
plt.xlabel('x')
plt.ylabel('y')

plt.yscale('log')
plt.grid()

plt.show()

boxplotについては, plt.plot(x軸方向に何個目のboxか, plotするy軸の値, options) という形で追加できる.

参考URL

boxplotを横に並べるときの間隔調整

箱ひげ図+点のプロット

箱ひげ図で, y軸を対数軸にする方法

matplotlibで, 軸の一部を省略したグラフの作成方法

maplotlibによる箱ひげ図の作り方まとめ

検定まとめ

対応のあるt検定

検定で使用する用語

joblibを手なづけたい

joblibの公式APIはここです. まぁとりあえずまずは試しに軽くいじっていきましょう.

import numpy as np
from joblib import Parallel, delayed

とりあえず並行処理に使いそうなParallelモジュールとdelayedモジュールをインポートしときましょう. では早速並列処理を試していきます. $0$~$9$の整数$x$について, $2^x$を並列で求めて出力するという処理をしてみましょう. パワー!!!

def power_two(x):
  return 2**x
Parallel(n_jobs=10)(delayed(power_tow)(x) for x in range(1, 11))

すると,

[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]

とlist形式で計算結果が返ってきます. ちなみにParallelモジュールのざっくりした使い方は, Parallel(並列実行数)(delayed(関数)(引数)(イテレータ))というふうになっています. ここでdelayed(引数)の部分は関数にしなければうまく動きません. 例えば,

Parallel(n_jobs=10)(delayed(2**x)(x) for x in range(1, 11))

としてもTypeError: 'numpy.int64' object is not callableと言われて失敗します. ということで最初に関数を定義する必要があります.

では並列処理の結果どの程度計算速度が向上するのかを確認してみましょう.

  • None
  • None

最近の投稿

カテゴリー

本サイトについて

衛星リモセン研究者の端くれが学んだこと・考えたことをよしなに発信します.
お手柔らかに.