Python Pandasを使用したDataFrameのプロット方法
Published on
データの可視化は、データを扱うすべての人にとって必須のスキルです。 データを理解する手助けや、結果を効果的に提示し、複雑な情報をシンプルで視覚的な形で伝えるための重要なツールです。 このガイドでは、Pythonの強力なデータ分析ツールであるPandasを使用して、DataFrameをプロットする方法を説明します。
Pythonでデータの可視化を素早く作成するには?
PyGWalkerは、Jupyter Notebookベースの環境内でデータ分析および可視化のワークフローを迅速化するのに役立つオープンソースのPythonプロジェクトです。
PyGWalker (opens in a new tab)は、Pandas Dataframe(またはPolars Dataframe)を視覚的なUIに変換し、変数をドラッグアンドドロップして簡単にグラフを作成することができます。 以下のコードを使用するだけです。
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
これらのオンラインノートブックでPyGWalkerをすぐに実行できます:
GitHubで⭐️を付けるのを忘れないでください!
Pandasとは何ですか?
Pandasは、Python向けの高性能で使いやすいデータ構造とデータ分析ツールを提供するオープンソースライブラリです。 Pythonの人気のあるプロットライブラリであるMatplotlib (opens in a new tab)の上に構築され、さまざまなプロットを作成するためのユーザーフレンドリーなインターフェースを提供します。
Pandasを使用したデータ可視化の利点は何ですか?
Pandasは、大規模なデータセットの簡単な処理、他のPythonライブラリとの統合、さまざまなプロットタイプ、複雑な可視化のカスタマイズ性など、データ可視化にさまざまな利点を提供します。
Pandasで作成できるさまざまなプロットには何がありますか?
Pandasは、次のようなさまざまなプロットタイプをサポートしています。
- 折れ線グラフ
- 棒グラフ
- ヒストグラム
- ボックスプロット
- 散布図
- Hexbinプロット
- エリアプロット
- 円グラフ
Pandasでライブラリとデータセットをインポートする方法は何ですか?
プロットを開始する前に、必要なライブラリをインポートし、データセットをロードする必要があります。 以下は、PandasをインポートしてCSVファイルを読み込む方法の例です。
import pandas as pd
data = pd.read_csv('data.csv')
Pandasでの折れ線グラフとは何ですか?
折れ線グラフは、直線セグメントで接続された一連のデータポイントとして情報を表示するプロットの一種です。 変数間のトレンドや関係を時間の経過で視覚化するのに役立ちます。
以下は、Pandasでシンプルな折れ線グラフを作成する方法の例です。
data.plot(kind='line', x='date', y='price')
Pandasでバースプロットを作成する方法は?
バースプロットは、長さがデータの値を表す長方形のバーを使用してデータを表示するプロットの一種です。 カテゴリデータの視覚化やカテゴリ間の値の比較に役立ちます。
以下は、Pandasでシンプルなバースプロットを作成する方法の例です。
data.plot(kind='bar', x='category', y='value')
Pandasとそのプロット機能の基本的な理解ができたので、いくつかのより高度な例について説明していきましょう。
例1:e マンスリー株価の折れ線グラフ
この例では、Facebook、Microsoft、Appleの3つのテックジャイアントの月次株価をプロットします。 まず、必要なライブラリをインポートし、株価データをロードします。
import pandas as pd import matplotlib.pyplot as plt stock_data = pd.read_csv('stock_data.csv')
次に、データをリサンプリングして、各月の平均株価を取得します。
monthly_data = stock_data.resample('M', on='Date').mean()
最後に、各企業の月次株価をプロットします。
monthly_data.plot(kind='line', x='Date', y=['Facebook', 'Microsoft', 'Apple'])
plt.title('Monthly Stock Prices of Facebook---
このmdxファイルにはフロントマターが含まれます。フロントマターとは、ファイル内にあるメタデータのことです。以下に示すのは、このファイルの「タイトル」と「著者」を定義しているフロントマターの例です。
---
title: Pandas Dataframeを使ったプロットの方法
author: DataCamp
---
以下は、PythonのPandasライブラリを使用してDataFrameをプロットする方法に関する例である。
```python
sales_data = pd.read_csv('sales_data.csv')
product_sales = sales_data.groupby('Product')['Sales'].sum()
product_sales.plot(kind='bar')
plt.title('Product Sales')
plt.xlabel('Product')
plt.ylabel('Sales')
plt.show()
この棒グラフは、ストアで最高売れ筋の商品を特定するのに便利な、各商品の売上を表示している。
例3: Pandasでプロットをカスタマイズする
Pandasでは、さまざまな方法でプロットをカスタマイズできます。色を変えたり、ラベルを追加したり、プロットのサイズを調整したりすることができます。ここでは、Pandasでラインプロットをカスタマイズする方法の例を示します。
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
data.plot(kind='line', x='date', y='price', figsize=(10, 6), color='red', linestyle='dashed', linewidth=2)
plt.title('Customized Line Plot')
plt.xlabel('Date')
plt.ylabel('Price')
plt.show()
この例では、色を赤に変え、破線のスタイルを使用し、線の太さを2に設定することで、ラインプロットをカスタマイズしました。また、「figsize」パラメータを使用して、プロットのサイズを調整しました。
例4: 複数の軸を持つPandas DataFrameをプロットする
同じ図内に複数のプロットを表示したい場合があります。Pandasでは、「subplots」パラメータを使用して、サブプロットを簡単に作成できます。ここでは、2x2のサブプロットグリッドを作成する方法の例を示します。
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
fig, axes = plt.subplots(2, 2, figsize=(10, 6))
data.plot(kind='line', x='date', y='price', ax=axes[0, 0])
data.plot(kind='bar', x='category', y='value', ax=axes[0, 1])
data.plot(kind='scatter', x='date', y='price', ax=axes[1, 0])
data.plot(kind='hist', y='price', ax=axes[1, 1])
plt.tight_layout()
plt.show()
この例では、異なる種類のプロットが含まれる2x2のサブプロットグリッドを作成しました。
例5: Pandasプロットに誤差棒を追加する
誤差棒は、プロット内のデータポイントの変動性または不確実性を表示するために役立ちます。ここでは、Pandasの棒グラフに誤差棒を追加する方法の例を示します。
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
data.plot(kind='bar', x='category', y='value', yerr='error')
plt.title('Bar Plot with Error Bars')
plt.xlabel('Category')
plt.ylabel('Value')
plt.show()
この例では、「yerr」パラメータを使用して、誤差値が含まれる列の名前を渡すことで、棒グラフに誤差棒を追加しました。
例6: Pandasプロットの凡例をカスタマイズする
プロットの凡例を調整することで、表示位置、サイズ、その他のプロパティをカスタマイズできます。ここでは、ラインプロットの凡例をカスタマイズする方法の例を示します。
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
ax = data.plot(kind='line', x='date', y='price')
ax.legend(loc='upper right', fontsize=12, title='Price', title_fontsize=14, frameon=False)
plt.title('Line Plot with Customized Legend')
plt.xlabel('Date')
plt.ylabel('Price')
plt.show()
この例では、「loc」パラメータを使用して、凡例の位置を右上隅に設定し、「fontsize」を12、タイトルを追加し、「title_fontsize」を14に設定し、凡例の周りの枠を削除することで、凡例をカスタマイズしました。
例7: Pandasプロットでカテゴリデータを処理する
Pandasを使用すると、プロットを作成するときにカテゴリデータを処理することが簡単になります。ここでは、カテゴリデータを使用して棒グラフを作成する方法の例を示します。
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('categorical_data.csv')
data['category'] = data['category'].astype('category')
data.plot(kind='bar', x='category', y='value')
plt.title('Bar Plot with Categorical Data')
plt.xlabel('Category')
plt.ylabel('Value')
plt.show()
この例では、「astype」メソッドを使用して、「category」列をカテゴリデータ型に変換しました。これにより、Pandasがバーグラフを作成するときにカテゴリデータを適切に処理できます。
例8: 複数の軸で異なるスケールのデータをプロット
同じ図内に異なるスケールをもつデータをプロットする場合があります。Pandasでは、複数の軸を使用することでこれを行うことができます。ここでは、2つのy軸を持つラインプロットを作成する方法の例を示します。
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
fig, ax1 = plt.subplots()
ax1.plot(data['date'], data['price'], color='blue', label='Price')
ax1.set_xlabel('Date')
ax1.set_ylabel('Price', color='blue')
ax1.tick_params(axis='y', labelcolor='blue')
ax2 = ax1.twinx()
ax2.plot(data['date'], data['volume'], color='red', label='Volume')
ax2.set_ylabel('Volume', color='red')
ax2.tick_params(axis='y', labelcolor='red')
fig.legend(loc='upper right')
plt.title('Line Plot with Two Y-Axes')
plt.show()
この例では、価格データは左のy軸に青でプロットされ、出来高データは右のy軸に赤でプロットされるように、2つのy軸を持つラインプロットを作成しました。
まとめ
これらのコード例を使用することで、Pandasを使用してDataFrameをプロットする方法についての理解を深めることができます。初心者から上級者まで、これらの例を使用することで、美しい、情報豊富で魅力的な視覚化を作成し、データをより理解し、伝えることができます。