PythonでPandasとMatplotlibを使ってCSVデータをプロットする方法
はじめに
PythonでCSVファイルのデータを可視化したい場合、Pandasでデータを読み込み、Matplotlibでプロットするのが最も手軽で一般的な方法です。この記事では、その基本的な手順を実際のコード例とともにわかりやすく解説します。
プロットまでの手順
PythonでMatplotlibとPandasを使用してCSVデータをプロットするには、以下の手順に従います。
- 図のサイズを設定し、サブプロットの内側・外側の余白(パディング)を調整します。
- CSVファイルのヘッダー名のリストを作成します。
- ヘッダーを指定してCSVファイルを読み込みます。
- インデックス列を設定し、データフレームをプロットします。
- 図を表示するには、show()メソッドを使用します。
コード例
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
headers = ['Name', 'Age', 'Marks']
df = pd.read_csv('student.csv', names=headers)
df.set_index('Name').plot()
plt.show()
コードの解説
- plt.rcParams: figure.figsizeで図のサイズを幅7.50×高さ3.50インチに設定しています。また、figure.autolayoutをTrueにすることで、ラベルやタイトルが図の外にはみ出さないよう自動的にレイアウトが調整されます。
- headers: CSVファイルの各列に対応するヘッダー名(Name、Age、Marks)をリストとして定義しています。
- pd.read_csv(): names引数にヘッダーのリストを渡すことで、指定した列名を持つデータフレームとしてCSVファイルを読み込みます。
- set_index('Name'): 「Name」列をインデックス(横軸)として設定することで、残りの数値列である「Age」と「Marks」が折れ線グラフとして描画されます。
出力結果
上記のコードを実行すると、「Name」を横軸とした「Age」と「Marks」の折れ線グラフが表示されます。


まとめ
Pandasのread_csv()とMatplotlibのplot()を組み合わせれば、わずか数行のコードでCSVデータを簡単に可視化できます。さらに、plot()の引数にkind='bar'を指定すれば棒グラフ、kind='scatter'を指定すれば散布図なども描画できるため、データの特性や目的に合わせて柔軟に使い分けることをおすすめします。
-
PythonとMatplotlibで3次元散布図(3D散布図)を作成する方法をわかりやすく解説
Matplotlibとは?Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データの可視化は数値を一つひとつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようにしてくれる重要なステップであり、定量的な洞察を効果的に伝えるためにも欠かせません。Matplotlibは主に2次元のグラフ描画に使用されますが、オブジェクト指向APIを備えており、作成したグラフをPythonアプリケーションに簡単に組み込むことができます。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境でも利用
-
PythonとMatplotlibで複数のプロットを1つの図に描画する方法
Matplotlibは、データ可視化のために広く利用されている人気のPythonパッケージです。データの可視化は非常に重要なステップです。生の数値を目で追ったり複雑な計算を実行したりしなくても、データの中で何が起きているのかを直感的に把握できるようになるからです。また、定量的な洞察を聴衆に対して効果的に伝える手段としても役立ちます。Matplotlibは、データをもとに2次元のプロットを作成するために使われます。オブジェクト指向のAPIを備えており、Pythonアプリケーションへプロットを簡単に組み込むことができます。IPythonシェル、Jupyter Notebook、Spyderなどの開