- 目次
- 表計算
- コード
【表計算】Excel・スプレッドシートでデータの分析
数値計算・要約について
四則演算 +
-
*
/
ベキ乗 ^
, 平方根SQRT()
表計算シートで四則演算とべき乗を計算する方法を習得しよう。
表計算
演算 | 記号 | 入力例 | 出力 |
---|---|---|---|
和 | + | = 10 + 2 | 12 |
差 | - | = 10 - 2 | 8 |
積 | * | = 10 * 2 | 20 |
商 | / | = 10 / 2 | 5 |
べき乗 | ^ | = 10 ^ 2 | 100 |
※「^」はキャレットと読みます。
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) 次のデータを利用します。このデータの範囲を指定します。今回は、A1
~E10
全体を指定しました。

(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.pyplot
のbar()
関数を利用して, 棒グラフを出力する。
bar()
の引数には, 横軸と縦軸方向のデータを入力する。
入力例. stores
とsales
のデータの折れ線グラフを表示する。
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.pyplot
のplot()
関数を利用して, 折れ線グラフを出力する。
plot()
の引数には, 横軸と縦軸方向のデータを入力する。
入力例. months
とsales
のデータの折れ線グラフを表示する。
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.pyplot
のpie()
関数を利用して, 円グラフを出力する。
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.pyplot
のbarh()
関数(積み上げ横棒グラフ)を利用して, 帯グラフを出力する。
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コード
numpy
のhistogram()
関数を使い, 度数分布を作成する。
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.pyplot
のhist()
関数を利用して, ヒストグラムを出力する。
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.pyplot
のboxplot()
関数を利用して, 箱ひげ図を出力する。
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()

縦向きの場合は, vert
をTrue
にするか消去する。この場合, xlabel
とy.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.pyplot
のscatter()
関数を利用して, 散布図を出力する。
scatter()
の引数には, 散布図にする2つのデータを入力する。
入力例. height
とweight
のデータから散布図を表示する。
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