Pythonとmatplotlibでエラーバーのグラフを作成する方法

スポンサーリンク

この記事では、エラーバーの概念を理解し、Pythonプログラミング言語で同じものを視覚化する方法を学びます。

まず、コードに飛ぶ前にエラーバーについて紹介します。

スポンサーリンク

Pythonでエラーバーとは何ですか?

データサイエンス研究において、ビジュアライゼーションにエラーバーを表示することは避けられないことであり、非常に必要とされています。

エラーバーは、出力として得られた値の信頼度を観察するために、問題解決者にとって非常に有用であることが判明しました。

エラーバーのない棒グラフは、測定値や計算値が高精度または高信頼度であることが知られているかのような錯覚を与えます。

Python でエラーバーを実装する

エラーバーが何であるか分かったので、基本的な機械学習モジュールを使ってエラーバーを可視化することを学びましょう。

1. モジュールのインポート

1
2
3
4
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('seaborn')

2. 棒グラフでエラーバーを可視化する

棒グラフでエラーバーを可視化するためには、まず棒グラフを作成する必要があります。

同じように、データを作成し、最初に棒グラフをプロットします。

2.1 データの作成

データを作成するために、3つの異なるオブジェクトを取ります。

この記事では、3つの金属の熱温度を表現します。

1
2
3
4
5
6
aluminum = np.array([6.4e-5 , 3.01e-5 , 2.36e-5, 3.0e-5, 7.0e-5, 4.5e-5, 3.8e-5,
                     4.2e-5, 2.62e-5, 3.6e-5])
copper = np.array([4.5e-5 , 1.97e-5 , 1.6e-5, 1.97e-5, 4.0e-5, 2.4e-5, 1.9e-5,
                   2.41e-5 , 1.85e-5, 3.3e-5 ])
steel = np.array([3.3e-5 , 1.2e-5 , 0.9e-5, 1.2e-5, 1.3e-5, 1.6e-5, 1.4e-5,
                  1.58e-5, 1.32e-5 , 2.1e-5])

可視化はMLプログラムにおいて重要な役割を果たすので、以下のコードでデータを散布図として可視化しましょう。

1
2
3
4
5
6
7
x_values = np.array([i for i in range(len(aluminum))])
plt.scatter(x_values,aluminum,label="Aluminium")
plt.scatter(x_values,copper,label="Copper")
plt.scatter(x_values,steel,label="Steel")
plt.title("Initial Data Visualization")
plt.legend()
plt.show()
1
2
3
4
5
6
7
8
9
10
11
12
aluminum_mean = np.mean(aluminum)
copper_mean = np.mean(copper)
steel_mean = np.mean(steel)
 
aluminum_std = np.std(aluminum)
copper_std = np.std(copper)
steel_std = np.std(steel)
 
labels = ['Aluminum', 'Copper', 'Steel']
x_pos = np.arange(len(labels))
CTEs = [aluminum_mean, copper_mean, steel_mean]
error = [aluminum_std, copper_std, steel_std]

2.2 エラーバーの誤差を計算する

エラーバーの誤差を求めるには、平均と標準偏差が必要です。

これは、numpy配列のmeanとstd関数を使って計算することができます

そのためのコードを以下に示します。

また、このデータをプロットするために、いくつかの変数を作成する準備をします。

    1. テーブルのリスト
  1. 各カテゴリの平均を含むリスト
  2. 各カテゴリーの標準偏差を含むリスト
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
plt.style.use('seaborn')
fig, ax = plt.subplots()
ax.bar(x_pos, CTEs,
       yerr=error,
       align='center',
       alpha=0.2,
       color='green',
       ecolor='red',
       capsize=10)
 
ax.set_ylabel('Coefficient of Thermal Expansion')
ax.set_xticks(x_pos)
ax.set_xticklabels(labels)
ax.set_title('Coefficent of Thermal Expansion (CTE) of Three Metals')
ax.yaxis.grid(True)
plt.show()

2.3 エラーバーのプロット

エラーバーをプロットするコードは以下の通りです。

エラーは、各カテゴリーの値の標準偏差です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
x = np.linspace(0,5.5,5)
y = np.exp(-x)
 
xerr = np.random.random_sample(5)
yerr = np.random.random_sample(5)
fig, ax = plt.subplots()
 
ax.errorbar(x, y,
            xerr=xerr,
            yerr=yerr,
            fmt='-o',
           color='yellow',
           ecolor='green')
 
ax.set_xlabel('x-axis')
ax.set_ylabel('y-axis')
ax.set_title('Line plot with error bars')
plt.show()
Initial Visualization Errorbars

3. 折れ線グラフのエラーバーの可視化

エラーバーは、matplotlib で作成された折れ線グラフに追加することもできます。

x, y データ点のリストまたは配列を必要とするエラーバー付きの折れ線グラフを作成するには、 ax.errorbar() メソッドが使用されます。

そのためのコードを以下に示します.

Bar Plot With Error Bars
Line Plot With Error Bars

まとめ

コンセプトを理解し、アウトプットを気に入っていただけたでしょうか。

もっと多くのサンプルデータで同じことを試してみてください。

もっと学びたいですか?以下のチュートリアルをご覧ください。

  1. Python Bar Plot – Pythonでカテゴリデータを可視化する
  2. Pythonの。滑らかな曲線のプロット
  3. PythonでExcelシートからデータをプロットする
タイトルとURLをコピーしました