Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのmatplotlibで1つのページに複数のプロットを作成する方法

Pandasとmatplotlibを組み合わせることで、データフレームから図(figure)と軸(axis)を簡単に作成し、scatterメソッドを使って点をプロットできます。ここでは、学生の人数と取得点数の関係を散布図として可視化する手順を紹介します。

実装の手順

  • 学生のリスト、各学生が取得した点数のリスト、スコアごとの色分け用リストを作成します。
  • PandasのDataFrameを使って、手順1のデータからデータフレームを作成します。
  • subplotsメソッドでfigax変数を作成します。デフォルトでは行数(nrows)と列数(ncols)はどちらも1に設定されています。
  • plt.xlabel()メソッドでX軸のラベルを設定します。
  • plt.ylabel()メソッドでY軸のラベルを設定します。
  • マーカーのサイズや色を変えながら、y対xの散布図を描画します。
  • plt.show()メソッドで図を表示します。

サンプルコード

from matplotlib import pyplot as plt
import pandas as pd

no_of_students = [1, 2, 3, 5, 7, 8, 9, 10, 30, 50]
marks_obtained_by_student = [100, 95, 91, 90, 89, 76, 55, 10, 3, 19]
color_coding = ['red', 'blue', 'yellow', 'green', 'red', 'blue', 'yellow', 'green', 'yellow', 'green']

df = pd.DataFrame(dict(students_count=no_of_students,
marks=marks_obtained_by_student, color=color_coding))

fig, ax = plt.subplots()

plt.xlabel('Students count')
plt.ylabel('Obtained marks')

ax.scatter(df['students_count'], df['marks'], c=df['color'])

plt.show()

実行結果

Pythonのmatplotlibで1つのページに複数のプロットを作成する方法

補足:複数のプロットを1ページに配置するには

1つのページ(図)に複数のグラフを並べて表示したい場合は、subplots()の引数に行数と列数を指定します。たとえばfig, ax = plt.subplots(2, 2)とすると、2行2列の4つのプロット領域が作成され、ax[0, 0]ax[1, 1]のようにインデックスを指定してそれぞれの領域に個別のグラフを描画できます。figsize引数で図全体のサイズを調整すれば、レイアウトの見栄えも向上します。

  1. Pythonで2つのプロットを並べて作成する方法【matplotlibのsubplot活用】

    matplotlibのsubplot(row, col, index)メソッドを使うと、1つの図(figure)を行数×列数の領域に分割し、指定したインデックスの位置にそれぞれグラフを描画できます。本記事では、このメソッドを利用して、1つの図の中に2つのグラフを横並びで作成する方法を解説します。 実装の手順 numpyを使って、x座標と2種類のy座標(y1、y2)のデータポイントを作成します。 nrows=1、ncols=2、index=1を指定してsubplot()メソッドを呼び出し、現在のfigureに最初のサブプロットを追加します。 plot()メソッドで、xとy1のデータを使って折れ

  2. PythonのMatplotlibで3次元ラインプロットを作成する方法【サンプルコード付き解説】

    Matplotlibとは Matplotlibは、Pythonで最も広く利用されているデータ可視化ライブラリの一つです。データを可視化することは、大量の数値を直接読んだり複雑な計算を行ったりしなくても、データの中で何が起きているのかを直感的に把握できるようにするための重要なステップです。 また、定量的な洞察を効果的に伝える手段としても非常に役立ちます。Matplotlibは主に2次元プロットの作成に使用されますが、オブジェクト指向APIを備えているため、作成したグラフをPythonアプリケーションへ簡単に組み込むことが可能です。さらに、IPythonシェル、Jupyter Notebook、S