• 目次
  • 表計算
  • コード

【表計算】Excel・スプレッドシートでデータの分析

数値計算・要約について

四則演算 + - * /
ベキ乗 ^, 平方根SQRT()

表計算シートで四則演算とべき乗を計算する方法を習得しよう。

表計算

演算記号入力例出力
+= 10 + 212
-= 10 - 28
*= 10 * 220
/= 10 / 25
べき乗^= 10 ^ 2100

※「^」はキャレットと読みます。

SQRT関数

表計算シートで平方根(ルート)を計算する場合、
SQRT(数値)
を利用する。

例えば、[A1]:4の場合、「=SQRT(A1)」と入力すると2が出力されます。

データの大きさ(個数)COUNT()

COUNT関数

表計算シートでデータの大きさ(個数)を計算する場合、
COUNT(データ範囲)
を利用する。

・データ範囲…データのセル範囲を指定。

例えば、[A1]:4, [A2] :1, [A3]:1の場合、「=COUNT(A1:A3)」と入力すると3が出力されます。

最大値・最小値MAX() MIN()

MAX・MIN関数

表計算シートでデータの最大値を計算する場合、
MAX(データ範囲)
を利用する。

データの最小値を計算する場合、
MIN(データ範囲)
を利用する。

・データ範囲…データのセル範囲を指定。

例えば、[A1]:4, [A2] :1, [A3]:1の場合、「=MAX(A1:A3)」と入力すると4, 「=MIN(A1:A3)」と入力すると1が出力されます。

合計値SUM()

SUM関数

表計算シートでデータの合計値を計算する場合、
SUM(データ範囲)
を利用する。

・データ範囲…データのセル範囲を指定。

例えば、[A1]:4, [A2] :1, [A3]:1の場合、「=SUM(A1:A3)」と入力すると6が出力されます。

平均値 AVERAGE()

AVERAGE関数

データの平均値を表計算で計算する場合、
AVERAGE(データ範囲)
を利用する。

・データ範囲…データのセル範囲を指定。

例えば、[A1]:4, [A2] :1, [A3]:1の場合、「=AVERAGE(A1:A3)」と入力すると2が出力されます。

グラフの作成について

棒グラフの作成

表計算ソフト(Excelなど)で棒グラフを作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップで棒グラフを作成する。

(1) データの範囲を指定する。
(2)【挿入】から【グラフ】を選択する。
(3)【設定】【縦棒グラフ】を選択する。
(4)【カスタマイズ】でグラフを調整する。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A列とB列全体を指定しました。

(2) 【挿入】から【グラフ】を選択します。

(3) 【設定】【縦棒グラフ】を選択します。

(4) 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」の棒グラフができます。

折れ線グラフの作成

表計算ソフト(Excelなど)で折れ線グラフを作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップで折れ線グラフを作成する。

(1) データの範囲を指定する。
(2)【挿入】から【グラフ】を選択する。
(3)【設定】【折れ線グラフ】を選択する。
(4)【カスタマイズ】でグラフを調整する。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A列とB列全体を指定しました。

(2) 【挿入】から【グラフ】を選択します。

(3) 【設定】【折れ線グラフ】を選択します。

(4) 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」の折れ線グラフができます。

円グラフの作成

表計算ソフト(Excelなど)で円グラフを作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップで円グラフを作成する。

(1) データの範囲を指定する。
(2)【挿入】から【グラフ】を選択する。
(3)【設定】【円グラフ】を選択する。
(4)【カスタマイズ】でグラフを調整する。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A列とB列全体を指定しました。

(2) 【挿入】から【グラフ】を選択します。

(3) 【設定】【円グラフ】を選択します。

(4) 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」の円グラフができます。

帯グラフの作成

表計算ソフト(Excelなど)で帯グラフ(100%積み上げ横棒グラフ)を作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップで帯グラフを作成する。

(1) データの範囲を指定する。
(2)【挿入】から【グラフ】を選択する。
(3)【設定】【100%積み上げ横棒グラフ】を選択する。
(4)【カスタマイズ】でグラフを調整する。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A~F列全体を指定しました。

(2) 【挿入】から【グラフ】を選択します。

(3) 【設定】【100%積み上げ横棒グラフ】を選択します。

(4) 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」の帯グラフができます。

マップチャートの作成

表計算ソフト(Excelなど)でヒートマップの地図グラフ(マップチャート)を作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップで地図グラフをヒートマップとして作成する。

(1) 国名を含むデータについて, データの範囲を指定する。
(2)【挿入】から【グラフ】を選択する。
(3)【設定】【マップチャート】を選択する。
(4)【カスタマイズ】でグラフを調整する。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A列とB列全体を指定しました。

(2) 【挿入】から【グラフ】を選択します。

(3) 【設定】【マップチャート】を選択します。

(4) 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」のマップチャートのグラフができます。

ヒートマップの作成【条件付き書式】

表計算ソフト(Excelなど)で条件付き書式を利用してヒートマップを作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップでヒートマップを作成する。

(1) データの範囲を指定する。
(2)【表示形式】から【条件付き書式】を選択する。
(3)【条件付き書式設定ルール】【カラースケール】を選択する。
(4)【カスタマイズ】でグラフを調整する。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A~F列全体を指定しました。

(2) 【表示形式】から【条件付き書式】を選択します。

(3) 【条件付き書式設定ルール】【カラースケール】を選択します。

(4) 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」のヒートマップができます。

レーダーチャートの作成

表計算ソフト(Excelなど)でレーダーチャートを作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップでレーダーチャートを作成する。

(1) データの範囲を指定する。
(2)【挿入】から【グラフ】を選択する。
(3)【設定】【レーダーチャート】を選択する。
(4)【カスタマイズ】でグラフを調整する。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A~D列全体を指定しました。

(2) 【挿入】から【グラフ】を選択します。

(3) 【設定】【レーダーチャート】を選択します。

(4) 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」のレーダーチャートができます。

度数分布表の作成FREQUENCY()

表計算ソフト(Excelなど)で度数分布表を作ってみよう。
※作業環境はGoogleスプレッドシートです。

FREQUENCY関数

FREQUENCY()関数はFREQUENCY(データ, クラス)として入力すると, 各クラスの度数を一括で出力する。

クラス…階級の上端とする値の一覧。

作業手順

次のステップで度数分布表を作成する。

(1) 度数分布表のひながたを作る。各階級の上端とする数(クラス)を必ず入力しておく。
(2) 度数を表示するセルの一番上に=FREQUENCY(データ, クラス)と入力して【Enter】を押す。
(3) 度数が一括で表示される。

★完成イメージ

手順.

(0) 次のデータを利用します。

(1) 度数分布表のひながたを作ります。各階級の上端とする数をF2からF6に入力しておきます。

(2) G2=FREQUENCY(B:B, F2:F4)と入力して【Enter】キーを押します。

(3) 度数が一括で表示されます。

FREQUENCY()関数は, クラスの最後の数値よりも大きい階級の度数も出力されます。(今回の場合は, 90よりも大きいデータの個数の2も出力されている。)

ヒストグラムの作成

表計算ソフト(Excelなど)でヒストグラムを作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップでヒストグラムを作成する。

(1) データの範囲を指定する。
(2)【挿入】から【グラフ】を選択する。
(3)【設定】【ヒストグラム】を選択する。
(4)【カスタマイズ】【横軸】で横軸の最小値と最大値を設定する。【カスタマイズ】【ヒストグラム】【バケットサイズ】でヒストグラムの階級の幅を設定する。
(5)【カスタマイズ】でグラフを調整する。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A列とB列全体を指定しました。

(2) 【挿入】から【グラフ】を選択します。

(3) 【設定】【ヒストグラム グラフ】を選択します。

(4)【カスタマイズ】【横軸】で横軸の最小値と最大値を設定します。

【カスタマイズ】【ヒストグラム】【バケットサイズ】でヒストグラムの階級の幅を設定します。

(5) その他, 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」のヒストグラムができます。

箱ひげ図の作成

表計算ソフト(Excelなど)で箱ひげ図を作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップで箱ひげ図を作成する。

(1) 縦(列)に各項目, 横(行)に最小値・第1四分位数・第3四分位数・最大値を並べた表をつくる。QUARTILE.INC()関数を使う。
(2) (1)で作成した表の範囲を指定し, 【挿入】から【グラフ】を選択する。
(3)【設定】【ローソク足チャート】を選択する。
(4)【カスタマイズ】でグラフを調整する。

Excelでは(1)の操作を行わずに, 元のデータを選択することから箱ひげ図を作成できる。

Googleスプレッドシートでは箱ひげ図を作成する機能がなく, ローソク足チャートで代用しているため(1)の作業が必要となっている。

★完成イメージ

手順.

(0) 次のデータを利用します。

(1) 縦(列)に各項目, 横(行)に最小値・第1四分位数・第3四分位数・最大値を並べた表をつくります。

これらの値は

QUARTILE.INC(データ範囲, 戻り値)

で計算します。戻り値0から4の値を指定することで四分位数を出力することができます。例えば, クラスAでは

最小値:=QUARTILE(A:A, 0),
第1四分位数:=QUARTILE(A:A, 1),
第3四分位数:=QUARTILE(A:A, 3),
最大値:=QUARTILE(A:A, 4)

と入力します。

(2) (1)で作成した表の範囲を指定して【挿入】から【グラフ】を選択します。

(3) 【設定】【ローソク足チャート】を選択します。

(4) 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」の箱ひげ図ができます。

散布図の作成

表計算ソフト(Excelなど)で散布図を作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップでレーダーチャートを作成する。

(1) データの範囲を指定する。
(2)【挿入】から【グラフ】を選択する。
(3)【設定】【散布図】を選択する。
(4)【カスタマイズ】でグラフを調整する。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、B列とC列のみを指定しました。

(2) 【挿入】から【グラフ】を選択します。

(3) 【設定】【散布図】を選択します。

(4) 必要に応じて【カスタマイズ】でグラフを調整すると「★完成イメージ」の散布図ができます。

クロス集計表の作成【ピボットテーブル】

表計算ソフト(Excelなど)でピボットテーブルを利用してクロス集計表を作ってみよう。
※作業環境はGoogleスプレッドシートです。

作業手順

次のステップでクロス集計表を作成する。

(1) データの範囲を指定する。
(2)【挿入】から【ピボットテーブル】を選択する。
(3)【ピボットテーブルの作成】で「新しいシート」か「既存のシート」のいずれかに作成するかを選択する。
(4)【ピボットテーブルエディタ】【行】 【列】 【値】 【フィルタ】に集計する項目を入れる。

★完成イメージ

手順.

(1) 次のデータを利用します。このデータの範囲を指定します。今回は、A1E10全体を指定しました。

(2) 【挿入】から【ピボットテーブル】を選択します。

(3) 【ピボットテーブルの作成】で「新しいシート」か「既存のシート」のいずれかに作成するかを選択します。

今回は、「既存のシート」を選択して、A12にピボットテーブルを作成します。

(4) 【ピボットテーブルエディタ】【行】 【列】 【値】 【フィルタ】に集計する項目を入れます。

今回は右にある「商品名」を【行】にドラッグ、「店舗名」を【列】にドラッグ、「売上金額(円)」を【値】にドラッグしました。

【値】【集計】の項目をSUMにすれば合計値を出力できます。また、AVERAGE等ほかのものにすれば他の値を出力できます。

【フィルタ】に項目をドラッグすれば、フィルタに入力した項目別に集計をすることができます。

【コード】Pythonでデータの整理

数値計算・要約について

四則演算 + - * /
ベキ乗 **, 平方根sqrt()

四則演算(加減乗除)とべき乗をPythonで計算してみよう。

演算

足し算は+を使う。引き算は-を使う。掛け算は*を使う。割り算は/を使う。べき乗は**を使う。

Python. $a+b$, $a-b$, $a \times b$, $a \div b$, $a^b$ を計算する。

a = 3
b = 2

print(a + b) #足し算
print(a - b) #引き算
print(a * b) #掛け算
print(a / b) #割り算
print(a ** b) #べき乗

5
1
6
1.5
9

平方根の値をPythonで計算してみよう。

平方根の値の取得

mathモジュールのsqrt(x)で平方根 $\sqrt{x}$ の値を取得することができる。

numpyモジュールのsqrt(x)でも平方根 $\sqrt{x}$ の値を取得することができる。

Python. $\sqrt{2}$ の値を取得して表示する。

import math
import numpy as np

print(math.sqrt(2))
print(np.sqrt(2))

$1.4142135623730951$
$1.4142135623730951$

と表示された。

データの大きさ(個数)len()

Pythonのリストの長さ(要素の個数)を出力するlen()関数の使い方を習得しよう。

Pythonコード

len()関数は、引数にリストを入れることで、リストの要素の個数を出力する。

入力例. [2, 7, 5, 3]の要素の個数を出力する。

lst = [2, 7, 5, 3]

print(len(lst))

4

最大値・最小値max() min()

Pythonのリストの要素の最大値と最小値を出力するmax()関数とmin()関数の使い方を習得しよう。

説明

max()関数とmin()関数は、引数にリストを入れることで、リストの要素の最大値、最小値を出力する。

Pythonコード. [2, 7, 5, 3]の要素の最大値と最小値を出力する。

lst = [2, 7, 5, 3]
max_value = max(lst)
min_value = min(lst)

print("最大値:", max_value)
print("最小値:", min_value)

合計値sum()

Pythonのリストの合計を出力するsum()関数の使い方を習得しよう。

説明

sum()関数は、引数にリストを入れることで、リストの要素の合計値を出力する。

Pythonコード. [5, 7, 3, 4, 8]の要素の合計値を計算して出力する。

lst = [5, 7, 3, 4, 8]
sum(lst)

平均値 sum()/len() mean()

Pythonのリストの要素の平均値を計算し出力する方法を習得しよう。

Pythonコード

sum()関数で取得した合計値を, len()関数で取得したデータの大きさで割ることでリストの要素の平均値を出力する。

入力例. [2, 7, 5, 3]の平均値を出力する。

lst = [2, 7, 5, 3]

print(sum(lst)/len(lst))

4.25

Pythonコード

statisticsモジュールのmean()関数を利用し, 平均値を出力する。

入力例. [20, 10, 40, 20, 40, 50, 30]の平均値を出力する。

import statistics as st

data = [20, 10, 40, 20, 40, 50, 30]

print(st.mean(data))

30

Pythonコード

numpyモジュールのvar()関数を利用し, 分散を出力する。

var(データ, ddof=)として, ddof=0とすると(母)分散, ddof=1とすると標本分散を出力できる。

入力例. [20, 10, 40, 20, 40, 50, 30]の母分散と標本分散を出力する。

import numpy as np

data = [20, 10, 40, 20, 40, 50, 30]

print(np.var(data, ddof=0))
print(np.var(data, ddof=1))

30

グラフの作成について

Matplotlibで日本語利用japanize_matplotlib

Matplotlibでグラフや図表を作成したときのキャプションなどに日本語を利用する方法を習得してみよう。

Pythonコード

japanize-matplotlibをインストールした上で, japanize_matplotlibをインポートする。

pip install japanize-matplotlib
import japanize_matplotlib

入力例. 円グラフに日本語のタイトルとキャプションを付けて表示する。

pip install japanize-matplotlib
import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
categories = ["家電", "食品", "衣料品", "書籍", "その他"]
percentages = [35, 25, 20, 10, 10]

# 円グラフ描画
plt.pie(percentages, labels=categories, autopct="%1.1f%%", startangle=90)
plt.title("製品カテゴリ別売上割合")
plt.axis("equal")  # 円を真円に
plt.show()

棒グラフの作成bar()

データから棒グラフをPythonで出力してみよう。

Pythonコード

matplotlib.pyplotbar()関数を利用して, 棒グラフを出力する。

bar()の引数には, 横軸と縦軸方向のデータを入力する。

入力例. storessalesのデータの折れ線グラフを表示する。

import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
stores = ["東京店", "大阪店", "名古屋店", "福岡店", "札幌店"]
sales = [520, 480, 350, 300, 270]

# 棒グラフ描画
plt.bar(stores, sales, color="skyblue")
plt.title("店舗別売上(万円)")
plt.xlabel("店舗")
plt.ylabel("売上(万円)")
plt.show()

matplotlibで日本語を利用する場合japanize_matplotlibを使う。必要であれば、次を行い事前にインストールしておく。

pip install japanize-matplotlib

折れ線グラフの作成plot()

データから折れ線グラフをPythonで出力してみよう。

Pythonコード

matplotlib.pyplotplot()関数を利用して, 折れ線グラフを出力する。

plot()の引数には, 横軸と縦軸方向のデータを入力する。

入力例. monthssalesのデータの折れ線グラフを表示する。

import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
months = ["1月", "2月", "3月", "4月", "5月", "6月",
          "7月", "8月", "9月", "10月", "11月", "12月"]
sales = [120, 150, 130, 170, 160, 180, 200, 190, 210, 230, 220, 250]

# 折れ線グラフ描画
plt.plot(months, sales, marker="o", color="skyblue", label="売上")
plt.title("月別売上")
plt.xlabel("月")
plt.ylabel("売上(万円)")
plt.grid(True)
plt.legend()
plt.show()

matplotlibで日本語を利用する場合japanize_matplotlibを使う。必要であれば、次を行い事前にインストールしておく。

pip install japanize-matplotlib

円グラフの作成pie()

データから円グラフをPythonで出力してみよう。

Pythonコード

matplotlib.pyplotpie()関数を利用して, 円グラフを出力する。

pie()の引数には, 割合を表すデータを入力する。

labelsで円グラフの各要素のラベルを付けることが可能。
autopct%1.1fで小数第1位まで出力でき, %%で単位に%を出力可能。
startangleで1つ目の要素を始める円内の角度を定める。

入力例. 割合がpercentagesであるcategoriesのデータから円グラフを表示する。

import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
categories = ["家電", "食品", "衣料品", "書籍", "その他"]
percentages = [70, 50, 40, 20, 20]

# 円グラフ描画
plt.pie(percentages, labels=categories, autopct="%1.1f%%", startangle=90)
plt.title("製品カテゴリ別売上割合")
plt.axis("equal")  # 真円に
plt.show()

matplotlibで日本語を利用する場合japanize_matplotlibを使う。必要であれば、次を行い事前にインストールしておく。

pip install japanize-matplotlib

帯グラフの作成(barh()で積立横棒グラフ)

データから帯グラフをPythonで出力してみよう。

Pythonコード

matplotlib.pyplotbarh()関数(積み上げ横棒グラフ)を利用して, 帯グラフを出力する。

barh()の引数には, 棒の縦位置, 棒の横幅, 棒の左端位置を指定する。

barh(y, width, left=stat_x)の場合,
yで縦方向に並べる棒を0番目から順番に指定,
widthで棒の(水平方向の)長さを指定,
leftで棒のスタート位置(左側)を設定する。

入力例. regionsごとにteenからfifty_plusまでのデータを横に並べた帯グラフを表示する。

import matplotlib.pyplot as plt
import numpy as np
import japanize_matplotlib

# データ
regions = ["東京", "大阪", "名古屋", "福岡"]
teen = [15, 10, 12, 18]
twenty = [25, 30, 28, 22]
thirty = [30, 25, 27, 25]
forty = [20, 25, 23, 20]
fifty_plus = [10, 10, 10, 15]

# 帯グラフの設定・描画
y = np.arange(len(regions))
plt.barh(y, teen, color="#FF9999", label="10代")
plt.barh(y, twenty, left=teen, color="#FFCC99", label="20代")
plt.barh(y, thirty, left=np.array(teen)+np.array(twenty), color="#99CC99", label="30代")
plt.barh(y, forty, left=np.array(teen)+np.array(twenty)+np.array(thirty), color="#66CCCC", label="40代")
plt.barh(y, fifty_plus, left=np.array(teen)+np.array(twenty)+np.array(thirty)+np.array(forty), color="#9999CC", label="50代以上")

plt.yticks(y, regions)
plt.xlabel("割合(%)")
plt.title("地域別 年代構成(帯グラフ)")
plt.legend()
plt.show()

y = np.arange(len(regions))regionsの地域に, 0番から3番までの番号を振り分ける。(小さい数字の地域から順番に上に帯を置いていく。)

plt.barh()の引数については, たとえば, plt.barh(y, thirty, left=np.array(teen)+np.array(twenty), color="#99CC99", label="30代")では, 各地域の番号(y)ごとに30代の構成人数(thirty)の各値を長さとする棒を表示する。この棒は10代と20代の棒の右に設置する必要があるので, np.array(teen)+np.array(twenty)の各値の分だけ左にずらして(left), 棒を配置すればよい。

matplotlibで日本語を利用する場合japanize_matplotlibを使う。必要であれば、次を行い事前にインストールしておく。

pip install japanize-matplotlib

レーダーチャートの作成(極座標系で多角形表示)

データからレーダーチャートをPythonで出力してみよう。

Pythonコード

matplotlib.pyplotで極座標のプロットで多角形を描きレーダーチャートを出力する。

極座標はpolar=Trueで指定する。具体的には次のように指示する。

fig, ax = plt.subplots(subplot_kw=dict(polar=True))

多角形については, $360^{\circ}$ である $2\pi$ をラベルの要素の個数で割ることで角度を取得し, 各角度ごとに各値をax.plotで極座標における折れ線グラフとして表示することで描画する。

入力例. labelごとにproduct_Aからproduct_Cまでのデータをレーダーチャートして表示する。

import matplotlib.pyplot as plt
import numpy as np
import japanize_matplotlib

labels = ['デザイン', '使いやすさ', '性能', '価格', 'サポート']
product_A = [8, 7, 9, 6, 7]
product_B = [6, 8, 7, 9, 6]
product_C = [7, 6, 8, 7, 8]

angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
angles += angles[:1]

fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))

def plot_radar(values, label, color):
    values += values[:1]
    ax.plot(angles, values, label=label, color=color)
    ax.fill(angles, values, alpha=0.25, color=color)

plot_radar(product_A, '製品A', 'r')
plot_radar(product_B, '製品B', 'g')
plot_radar(product_C, '製品C', 'b')

ax.set_xticks(angles[:-1])
ax.set_xticklabels(labels)
ax.set_ylim(0, 10)
plt.title('製品評価レーダーチャート')
plt.legend(loc='upper right')
plt.show()

matplotlibで日本語を利用する場合japanize_matplotlibを使う。必要であれば、次を行い事前にインストールしておく。

pip install japanize-matplotlib

度数分布表の作成histogram()

データから度数分布表をPythonで出力してみよう。

Pythonコード

numpyhistogram()関数を使い, 度数分布を作成する。

histogram(データ, 階級の上限)で指定する。データはリスト形式でデータを入力し, 階級の上限はリスト形式で階級の上限値(階級には含まない)を入力する。

histogram()の戻り値は, 度数と階級の上限値であるので, これらを並べて度数分布表を作成する。

入力例. データdataを, 階級が $51 \sim 60$, $61 \sim 70$, $\cdots$, $91 \sim 100$ となる度数分布表を作成する。

import numpy as np

data = [
    87, 74, 79, 92, 85, 67, 67, 93, 73, 70,
    69, 85, 72, 70, 79, 65, 65, 56, 73, 60,
    81, 68, 69, 85, 77, 64, 73, 72, 88, 64,
    76, 80, 79, 78, 58, 78, 69, 76, 67, 88,
    65, 90, 66, 83, 89, 67, 84, 82, 79, 71
]

# 階級の上限
bins = [51, 61, 71, 81, 91, 101] 

hist, edges = np.histogram(data, bins=bins)

for i in range(len(hist)):
    print(f"{edges[i]}-{edges[i+1]-1}: {hist[i]}")

np.histogram(data, bins=bins)の戻り値は, 次のようになる。

1つ目の戻り値が度数でhistとして受け取り, 2つ目の戻り値が階級の上限でedgesとして受け取り, これらから表を作っている。

ヒストグラムの作成hist()

データからヒストグラムをPythonで出力してみよう。

Pythonコード

matplotlib.pyplothist()関数を利用して, ヒストグラムを出力する。

hist()の引数には, ヒストグラムにするデータを入力する。階級の個数binsを指定する。

入力例. scoresのデータからヒストグラムを表示する。100点満点のうち10点ずつ区切るために, ヒストグラムの棒は10本にする。

import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
scores = [87, 74, 79, 92, 88, 60, 79, 68, 68, 74, 71, 84,
          77, 71, 74, 73, 84, 67, 73, 61, 44, 76, 78, 62,
          92, 55, 70, 68, 85, 84, 71, 73, 61, 50, 66, 71,
          82, 82, 66, 66, 59, 55, 52, 89, 64, 65, 57, 77,
          53, 67]

# ヒストグラムの描画
plt.hist(scores, bins=10, color="skyblue", edgecolor="black")
plt.title("テスト点数の分布")
plt.xlabel("点数")
plt.ylabel("人数")
plt.grid(axis='y')
plt.show()

matplotlibで日本語を利用する場合japanize_matplotlibを使う。必要であれば、次を行い事前にインストールしておく。

pip install japanize-matplotlib

箱ひげ図の作成boxplot()

データから箱ひげ図をPythonで出力してみよう。

Pythonコード

matplotlib.pyplotboxplot()関数を利用して, 箱ひげ図を出力する。

boxplot()の引数には, 箱ひげ図にするデータを入力する。

labelsで各箱ひげのラベルを付けることが可能。
vert=Falseを指定すると, 横方向の箱ひげ図を作成可能。(縦方向の場合は入力不要。)
showmeans=Trueを指定すると, 平均値を表示可能。meanpropsで平均値の表示形式を指定可能。不要である場合は入力不要。

入力例. class_A class_B class_C のデータから箱ひげ図を表示する。

import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
class_A = [78, 82, 85, 90, 87, 92, 88, 84, 79, 81, 86, 91, 83, 85, 89, 87, 90, 88, 84, 82, 86, 88, 90, 92, 85, 87, 89, 91, 83, 84]
class_B = [65, 68, 70, 72, 74, 71, 69, 66, 75, 73, 72, 70, 68, 71, 69, 74, 73, 75, 72, 68, 70, 71, 69, 67, 74, 72, 73, 75, 68, 70]
class_C = [55, 60, 65, 50, 70, 75, 40, 85, 60, 55, 50, 80, 75, 45, 65, 70, 55, 60, 85, 40, 75, 70, 50, 55, 60, 65, 45, 80, 75, 50]

# 箱ひげ図
plt.boxplot(
    [class_A, class_B, class_C], labels=["クラスA", "クラスB", "クラスC"],
    vert=False,
    showmeans=True,  # 平均値を表示
    meanprops={"marker":"x", "markerfacecolor":"black", "markeredgecolor":"black", "markersize":8}
)
plt.title("数学テスト点数の分布")
plt.xlabel("点数") # plt.ylabel("点数")
plt.grid(True)
plt.show()

縦向きの場合は, vertTrueにするか消去する。この場合, xlabely.lableが替わるので変更する。

import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
class_A = [78, 82, 85, 90, 87, 92, 88, 84, 79, 81, 86, 91, 83, 85, 89, 87, 90, 88, 84, 82, 86, 88, 90, 92, 85, 87, 89, 91, 83, 84]
class_B = [65, 68, 70, 72, 74, 71, 69, 66, 75, 73, 72, 70, 68, 71, 69, 74, 73, 75, 72, 68, 70, 71, 69, 67, 74, 72, 73, 75, 68, 70]
class_C = [55, 60, 65, 50, 70, 75, 40, 85, 60, 55, 50, 80, 75, 45, 65, 70, 55, 60, 85, 40, 75, 70, 50, 55, 60, 65, 45, 80, 75, 50]

# 箱ひげ図
plt.boxplot(
    [class_A, class_B, class_C], labels=["クラスA", "クラスB", "クラスC"],
    showmeans=True,  # 平均値を表示
    meanprops={"marker":"x", "markerfacecolor":"black", "markeredgecolor":"black", "markersize":8}
)
plt.title("数学テスト点数の分布")
plt.ylabel("点数")
plt.grid(True)
plt.show()

matplotlibで日本語を利用する場合japanize_matplotlibを使う。必要であれば、次を行い事前にインストールしておく。

pip install japanize-matplotlib

散布図の作成scatter()

2変量のデータから散布図をPythonで出力してみよう。

Pythonコード

matplotlib.pyplotscatter()関数を利用して, 散布図を出力する。

scatter()の引数には, 散布図にする2つのデータを入力する。

入力例. heightweight のデータから散布図を表示する。

import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
height = [150, 152, 155, 157, 158, 160, 161, 162, 163, 164,
          165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
          175, 176, 177, 178, 179, 180, 181, 182, 183, 185]
weight = [45, 47, 48, 50, 51, 53, 54, 55, 55, 56,
          57, 58, 59, 60, 61, 62, 63, 64, 64, 65,
          66, 67, 68, 69, 70, 71, 72, 73, 74, 75]

# 散布図の描画
plt.scatter(height, weight, color="skyblue")
plt.title("身長と体重の関係")
plt.xlabel("身長 (cm)")
plt.ylabel("体重 (kg)")
plt.grid(True)
plt.show()

matplotlibで日本語を利用する場合japanize_matplotlibを使う。必要であれば、次を行い事前にインストールしておく。

pip install japanize-matplotlib

コメントを残す