Matplotlib の基本的な折れ線グラフ

PythonBeginner
オンラインで実践に進む

はじめに

Matplotlib は、Python で静的、アニメーション、およびインタラクティブな視覚化を作成するための包括的なライブラリです。最も人気のあるデータ可視化ライブラリの 1 つであり、Python を使用するデータサイエンティストやアナリストにとって必須のツールです。

折れ線グラフは、最も基本的かつ広く使用されているグラフの形式の 1 つです。「マーカー」と呼ばれる一連のデータポイントを直線セグメントで結んで情報を表示します。時間の経過に伴うデータのトレンド(時系列データ)を視覚化するためによく使用されるため、通常、線は時系列順に描かれます。

この実験では、ゼロから簡単な折れ線グラフを作成する方法を学びます。データの準備、プロットの作成、軸への説明的なラベルの追加、そして最後に LabEx 環境で直接確認できるようにプロットを画像ファイルとして保存するまでの全プロセスを取り上げます。

x データと y データのリストの準備

このステップでは、プロット用のデータを準備します。何かを視覚化する前に、データが必要になります。シンプルな 2 次元の折れ線グラフを作成するには、x 軸(水平軸)用と y 軸(垂直軸)用の 2 つのデータセットが必要です。

データを格納するために Python のリストを使用します。数年間にわたる人口の増加を表す簡単なデータセットを作成しましょう。

まず、左側のファイルエクスプローラーから ~/project ディレクトリにある main.py ファイルを開きます。このファイルには、すでに必要なインポート文が含まれています。

次に、main.py に次のコードを追加して、xy という 2 つのリストを作成します。

import matplotlib.pyplot as plt

## プロット用データ
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

ここで、x は年を表し、y は対応する各年の人口(単位:百万)を表します。これら 2 つのリストが、折れ線グラフの座標として機能します。

plt.plot(x, y) を使用した折れ線グラフのプロット

このステップでは、準備したデータを使用して実際のプロットを作成します。plt としてインポートした Matplotlib の pyplot モジュールには、このタスクに最適な plot() という関数が用意されています。

plt.plot() 関数は、x 軸のデータと y 軸のデータの 2 つの主要な引数を取ります。これにより、これらの座標で定義されたポイントを結ぶ線が描画されます。

前のステップで作成したデータリストの直後に、次の行を main.py スクリプトに追加します。

import matplotlib.pyplot as plt

## プロット用データ
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## プロットの作成
plt.plot(x, y)

この 1 行のコードにより、Matplotlib は xy のリストを座標として使用して折れ線グラフを作成します。ただし、このままスクリプトを実行しても、まだ何も表示されません。ラベルを追加し、プロットをファイルに明示的に保存する必要があるためです。

plt.xlabel() による x 軸ラベルの追加

このステップでは、x 軸にラベルを追加します。ラベルのないグラフは、閲覧者が軸の表す意味を把握できないため、意味を持たないことがよくあります。これは、明確で有益な視覚化を作成する上で不可欠な部分です。

Matplotlib には、x 軸にラベルを追加するための plt.xlabel() 関数が用意されています。希望するラベルを文字列としてこの関数に渡すだけです。

プロットに「Year(年)」のラベルを追加しましょう。plt.plot() 呼び出しの後に、次の行を main.py スクリプトに追加します。

import matplotlib.pyplot as plt

## プロット用データ
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## プロットの作成
plt.plot(x, y)

## x 軸ラベルの追加
plt.xlabel("Year")

これで、プロットの水平軸に「Year」という明確なラベルが付けられます。

plt.ylabel() による y 軸ラベルの追加

このステップでは、y 軸にラベルを追加し、プロットの基本的なラベル付けを完了させます。x 軸と同様に、閲覧者がデータを理解できるように、y 軸にも説明的なラベルが必要です。

これを行うための関数は plt.ylabel() であり、plt.xlabel() とまったく同じように機能します。ラベルテキストを文字列として渡します。

プロットに「Population(人口)」のラベルを追加しましょう。plt.xlabel() 呼び出しの直後に、次の行を main.py スクリプトに追加します。

import matplotlib.pyplot as plt

## プロット用データ
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## プロットの作成
plt.plot(x, y)

## x 軸ラベルの追加
plt.xlabel("Year")

## y 軸ラベルの追加
plt.ylabel("Population (in millions)")

両方の軸にラベルが付けられたことで、私たちのプロットは格段に分かりやすくなりました。

plt.show() によるプロットの表示

このステップでは、プロットを生成して確認します。一般的なデスクトップ環境では、新しいウィンドウにプロットを表示するために plt.show() を使用することがあります。しかし、LabEx のような Web ベースの環境では、GUI ウィンドウを開くことができません。

その代わりに、plt.savefig() 関数を使用して、プロットを画像ファイルとして保存します。この関数は、現在の図(figure)をプロジェクトディレクトリ内のファイルに保存します。

main.py スクリプトの最後に次の行を追加します。これにより、プロットが line_plot.png という名前の PNG 画像として保存されます。

import matplotlib.pyplot as plt

## プロット用データ
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## プロットの作成
plt.plot(x, y)

## x 軸ラベルの追加
plt.xlabel("Year")

## y 軸ラベルの追加
plt.ylabel("Population (in millions)")

## プロットをファイルに保存
plt.savefig("line_plot.png")

次に、WebIDE でターミナルを開きます(ターミナルパネルの + アイコンまたはメニューの Terminal > New Terminal を使用できます)。次のコマンドを使用してスクリプトを実行します。

python3 main.py

コマンドの実行が完了すると、左側のファイルエクスプローラーに line_plot.png という新しいファイルが表示されます。line_plot.png をダブルクリックして開き、完成した折れ線グラフを確認してください!

折れ線グラフ

まとめ

おめでとうございます!Matplotlib を使用して最初の折れ線グラフを作成し、保存することに成功しました。

この実験では、基本的なプロットを作成するための基本的なワークフローを学びました。

  1. データの準備: x 軸と y 軸のデータを保持するための Python リストを作成しました。
  2. データのプロット: plt.plot() を使用して、データから折れ線グラフを生成しました。
  3. ラベルの追加: plt.xlabel()plt.ylabel() を使用してラベルを追加し、プロットを分かりやすくしました。
  4. プロットの保存: GUI環境がない場所で不可欠な、plt.savefig() を使用して視覚化をファイルに保存する方法を学びました。

これは Matplotlib でできることのほんの始まりに過ぎません。これらのスキルを基にして、より複雑でカスタマイズされた視覚化を作成できるようになります。探求を続けましょう!