Matplotlib を使用してデータフレームの見事なプロットを作成する
Updated on
データの視覚化は、データをより簡単に理解し、より多くの情報に基づいた意思決定を行うのに役立つため、データ サイエンスの重要な部分です。 Matplotlib は、Python でデータを視覚化するための一般的なライブラリであり、さまざまな種類のプロットを作成するための幅広いツールを提供します。 この記事では、Python での Matplotlib プロットの基本を探り、開始するために知っておく必要があるすべてをカバーします。
簡単なプロットの作成とカスタマイズの基本から始めて、複数の列、折れ線グラフ、棒グラフ、散布図を使用したより高度なプロットに進みます。 また、オープン ソースの Metaplotlib の代替手段である、ユーザー フレンドリーな UI を備えた PyGWalker の使用についても説明します。
Matplotlib とは?
Matplotlib は、Python で静的、アニメーション、およびインタラクティブな視覚化を作成するための Python ライブラリです。 折れ線グラフ、散布図、棒グラフ、ヒストグラムなど、さまざまなタイプのプロットを作成するための幅広いツールを提供します。 また、色、ラベル、フォントなどの変更など、プロットのカスタマイズも可能です。
Matplotlib による基本的なプロット
Matplotlib を使い始めるには、まずライブラリをインポートして、単純な pandas データフレームを作成します。
import matplotlib.pyplot as plt
import pandas as pd
# Create a simple pandas dataframe
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)
次に、プロット関数を使用して、Matplotlib で基本的なライン プロットを作成できます。
plt.plot(df['x'], df['y'])
plt.show()
これにより、データの単純なライン プロットが表示されます。
ラベルを追加し、色を調整し、線のスタイルを変更して、プロットをカスタマイズすることもできます。
plt.plot(df['x'], df['y'], color='red', linestyle='dashed', linewidth=2, marker='o')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Simple Line Plot')
plt.show()
これにより、ラベルとタイトル付きのカスタマイズされた折れ線グラフが表示されます。
Dataframe を使用した Matplotlib ライン プロット
Matplotlib でライン プロットを作成するには、plot 関数を使用できます。
# Create a pandas dataframe with multiple columns
data = {'x': [1, 2, 3, 4, 5], 'y1': [2, 4, 6, 8, 10], 'y2': [1, 3, 5, 7, 9]}
df = pd.DataFrame(data)
# Create a line plot with multiple lines
plt.plot(df['x'], df['y1'], label='y1')
plt.plot(df['x'], df['y2'], label='y2')
plt.legend()
plt.show()
これにより、複数のラインを含むライン プロットが表示されます。
Dataframe を使用した Matplotlib 棒グラフ
Matplotlib で棒グラフを作成するには、 bar 関数を使用できます。
# Create a pandas dataframe with multiple columns
data = {'x': ['A', 'B', 'C', 'D', 'E'], 'y1': [2, 4, 6, 8, 10], 'y2': [1, 3, 5, 7, 9]}
df = pd.DataFrame(data)
# Create a bar plot
fig, ax = plt.subplots()
ax.bar(df['x'], df['y1'], label='y1')
ax.bar(df['x'], df['y2'], label='y2')
ax.legend()
plt.show()
この例では、2 つの列「y1」と「y2」、およびカテゴリ列「x」を持つ pandas データフレームを作成します。 次に、'x' の値ごとに 2 つのバーをプロットします。1 つは 'y1' で、もう 1 つは 'y2' です。 また、バーを区別するためにプロットに凡例を追加します。
Dataframe を使用した Matplotlib 散布図
散布図は、2 つの連続変数間の関係を示すのに役立ちます。 Matplotlib を使用して、散布関数を使用して pandas データフレームで散布図を作成できます。
# Create a pandas dataframe with two columns
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)
# Create a scatter plot
fig, ax = plt.subplots()
ax.scatter(df['x'], df['y'])
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()
この例では、2 つの列「x」と「y」を持つ pandas データフレームを作成します。 次に、「x」対「y」の散布図をプロットします。 また、x 軸と y 軸のラベルも設定します。
Matplotlib でプロット サイズを大きくする
プロットを読みやすくしたり、より多くの情報を含めたりするために、プロットのサイズを大きくする必要がある場合があります。 Matplotlib で図のサイズを設定することでこれを行うことができます。
# Create a pandas dataframe with one column
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)
# Create a line plot with increased size
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(df['x'], df['y'])
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()
この例では、2 つの列「x」と「y」を持つ pandas データフレームを作成します。 次に、'x' 対 'y' を 10 x 6 の大きなサイズでプロットします。x 軸と y 軸のラベルも設定します。
値に基づく Matplotlib バー プロットの色
棒が表す値に基づいて、Matplotlib 棒グラフの棒の色をカスタマイズできます。 たとえば、値が負の場合はバーの色を赤に、値が正の場合は緑に設定できます。
# Create a pandas dataframe with one column
data = {'x': ['A', 'B', 'C', 'D', 'E'], 'y': [-2, 4, -6, 8, -10]}
df = pd.DataFrame(data)
# Create a bar plot with colors based on value
fig, ax = plt.subplots()
colors = ['r' if y < 0 else 'g' for y in df['y']]
ax.bar(df['x'], df['y'], color=colors)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_title('Bar Plot with Colors Based on Value')
plt.show()
これにより、負の値の赤い棒と正の値の緑色の棒を持つ棒グラフが作成されます。
テーブルとしての Matplotlib プロット
プロットの作成に加えて、Matplotlib を使用して pandas データフレームからテーブルを作成することもできます。 これは、要約統計やその他の表形式のデータをプロットと一緒に表示するのに役立ちます。
Matplotlib を使用してテーブルを作成するには、テーブル関数を使用できます。 pandas データフレームからテーブルを作成する方法の例を次に示します。
# Create a pandas dataframe
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'Salary': [50000, 60000, 70000, 80000]}
df = pd.DataFrame(data)
# Create a table
fig, ax = plt.subplots()
ax.axis('off')
ax.axis('tight')
ax.table(cellText=df.values, colLabels=df.columns, loc='center')
fig.tight_layout()
plt.show()
これにより、pandas データフレームからテーブルが作成され、Matplotlib プロットに表示されます。
プロットの保存とエクスポート
Matplotlib を使用してプロットを作成したら、それをディスクに保存するか、簡単に共有したりレポートに含めたりできるファイル形式にエクスポートしたい場合があります。 これを行うために、Matplotlib はプロットを保存およびエクスポートするためのいくつかの方法を提供します。
プロットを保存する一般的な方法の 1 つは、関数 savefig を使用することです。 この関数を使用すると、PNG や PDF などのファイル形式とプロットの解像度を指定できます。 savefig 関数の使用例を次に示します。
# Create a plot
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
# Save the plot to a file
plt.savefig('my_plot.png', dpi=300)
これにより、プロットが 1 インチあたり 300 ドット (dpi) の解像度の PNG ファイルとして保存されます。
プロットをエクスポートする別の方法は、プロットをクリップボードにコピーすることです。 Matplotlib は、現在の図をファイルまたはシステム クリップボードに保存できる matplotlib.pyplot.savefig という関数を提供します。 関数 savefig を使用してプロットをクリップボードにコピーする方法の例を次に示します。
# Create a plot
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
# Copy the plot to the clipboard
plt.savefig('clipboard', bbox_inches='tight', pad_inches=0)
This will copy the plot to the clipboard, which can then be pasted into another application.
オープン ソースの Matplotlib の代替として PyGWalker を使用する
Python Pandas 内でデータを視覚化する場合は、PyGWalker (opens in a new tab) というオープン ソースのデータ分析とデータ視覚化パッケージを利用できます。
PyGWalker を今すぐテストするには、Google Colab (opens in a new tab)、Binder (opens in a new tab) または Kaggle (opens in a new tab)。
PyGWalker はオープン ソースです。 PyGWalker GitHub ページ (opens in a new tab) をチェックアウトし、データ サイエンスに向けた記事 (opens in a new tab) です。
Jupyter Notebook で PyGWalker を使い始める
PyGWalker は、Jupyter Notebook のデータ分析とデータ視覚化のワークフローを簡素化できます。 Python を使用してデータを分析する代わりに、軽量で使いやすいインターフェイスを導入することで。 手順は簡単です:
開始するには、pygwalker と pandas を Jupyter Notebook にインポートします。
import pandas as pd
import pygwalker as pyg
既存のワークフローを変更せずに pygwalker を使用できます。 たとえば、次の方法でロードされたデータフレームで Graphic Walker を呼び出すことができます。
df = pd.read_csv('./bike_sharing_dc.csv', parse_dates=['date'])
gwalker = pyg.walk(df)
これらのタイプのプロットは、グラフィカル ユーザー インターフェイスなしで pandas データフレームを使用して簡単に作成できます。
棒グラフ (opens in a new tab) | 折れ線グラフ | 面積グラフ (opens in a new tab) |
---|---|---|
トレイル | 散布図 (opens in a new tab) | サークル |
ティックプロット | 長方形 | アーク図 |
箱ひげ図 (opens in a new tab) | ヒートマップ (opens in a new tab) |
より多くの例については、データ可視化ギャラリーをご覧ください。
PyGWalker でグラフのサイズを変更する
マウス カーソルでグラフのサイズを簡単に変更できます。
グラフの種類を変更する
折れ線グラフは、棒グラフよりも登録ユーザー数の傾向をよく表しています。 既存のチャートを折れ線チャートに切り替えるには、ツールバーの Mark Types オプションをクリックし、Line を選択します。
連結ビューを作成する
「登録済み」ユーザーと「カジュアル」ユーザーの違いを比較したい場合があります。 行/列にメジャーを追加して比較するだけです。
より高度な AI を活用した自動データ分析ツール RATH (opens in a new tab) を忘れずにチェックしてください。 RATH もオープンソースであり、GitHub のソース コード (opens in a new tab) をホストしています。
結論
結論として、Matplotlib は、pandas データフレームから見事なプロットを作成するために使用できる強力なデータ視覚化ツールです。 この記事では、基本的なプロットと高度なプロットの作成、プロットのカスタマイズ、プロットのディスクへの保存、データフレームからのテーブルの作成など、プロットのための Matplotlib と PyGWalker の基本について説明しました。 Matplotlib と PyGWalker を使用することで、データ サイエンティストはデータの視覚化スキルを強化し、データから洞察を得ることができます。 データを最大限に活用するために、Matplotlib と PyGWalker のさまざまな機能を練習し、探索し続けることを忘れないでください。