7.2 最もシンプルなグラフ

本当に単純なグラフ, 例えばある数値変数のヒストグラムを見たい, という程度であれば, pandas.DataFrame.hist() を使うのが簡単です.

例えば, 以下のように数値変数 x, y, カテゴリカル変数 z, w を持つデータフレームを想定します.

rng = np.random.default_rng(42)
df = pd.DataFrame(dict(x=rng.standard_normal(size=100),
                       y=rng.standard_normal(size=100),
                       z=['a', 'b'] * 50,
                       w=['A', 'B', 'C', 'D'] * 25
                      ))

以降この章では, 上記の疑似乱数によるデータセットをサンプルコードに使用しています. よって, 使用する Python やパッケージのバージョンによっては完全に同一にならない可能性がありますが, この章は散布図の1つ1つの点の位置まで完全に再現できずとも問題ありません.

まず, グラフを描く前にグラフに表示する日本語が文字化けしないように設定しておきます. これには matplotlib の読み込みが必要です.17

import matplotlib.pyplot as plt
from matplotlib_japreset import mplj_cairo
from matplotlib import rcParams
rcParams['pdf.fonttype'] = 42
rcParams['font.family'] = 'Noto Serif CJK JP'

x, y のヒストグラムは以下のように書くことができます.

<code>pandas</code> によるヒストグラム描画

同様に, ラインプロットや散布図もサポートしています

_ = df.plot(y=['x', 'y'], kind='line')

<code>pandas</code> によるラインプロット

_ = df.plot(x='x', y='y', kind='scatter')

<code>pandas</code> による散布図


  1. 残念ながら, 現在の matplotlib は PDF ファイルに保存する際に日本語フォントの埋め込みを適切に行う機能が不足しています. 特に seaborn の場合はフォントファイルがまるごと埋め込まれ, ファイルサイズが膨大になることがありあます.↩︎