Matplotlibの散布図に追加の点を重ねてプロットする方法
Pythonの可視化ライブラリ「Matplotlib」を使えば、すでに作成した散布図の上に、別のデータポイントを簡単に重ねて描画できます。本記事では、散布図に追加の点をプロットする具体的な手順をサンプルコード付きで解説します。
実装手順
figureサイズとパディングを設定する:
plt.rcParamsを使って、図のサイズやサブプロット間・周囲の余白(パディング)を調整します。x・yのデータポイントを用意する: プロット元となるデータをリスト形式で定義します。
散布図を作成する:
plt.scatter()にx・yのデータを渡して、基本となる散布図を描画します。追加の点をプロットする:
plt.plot()を使い、marker='*'(星形マーカー)を指定して追加の点を重ねて描きます。線を引かないようls='none'を指定するのがポイントです。図を表示する:
show()メソッドを呼び出して、結果を画面に表示します。
サンプルコード
from matplotlib import pyplot as plt # 図のサイズを設定 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # データポイントのリスト x = [1, 2, 6, 4] y = [1, 5, 2, 3] # xとyで散布図を作成 color = plt.scatter(x, y, c=x, cmap='hot') # 追加の点を星形マーカーでプロット plt.plot([3, 4], [6, 7], marker='*', ls='none', ms=20) # グラフを表示 plt.show()
出力結果
上記のコードを実行すると、以下のようなグラフが出力されます。元の散布図の上に、大きな星形マーカーで示した2つの追加ポイントが重ねて表示されていることが確認できます。

解説のポイント
ここで重要なのは、plt.plot() に ls='none'(ラインスタイルなし)を指定している点です。これにより、点同士を結ぶ線が描かれず、マーカーだけが散布図の上に重ねて表示されます。また、ms=20 はマーカーサイズ(markersize)の指定で、値を大きくすると追加の点を目立たせることができます。
さらに、c=x, cmap='hot' のように色(color)とカラーマップ(colormap)を指定することで、データの値に応じて点を色分けすることも可能です。この手法は、外れ値の強調や注目ポイントのハイライトなど、さまざまなデータ可視化の場面で活用できます。
-
Matplotlibで対数プロットのマイナーティック(補助目盛り)を無効にする方法
Matplotlibで対数(ログ)プロットのマイナーティック(補助目盛り)を無効にしたい場合は、minorticks_off()メソッドを使用します。対数スケールでは補助目盛りが自動的に表示されますが、このメソッドを呼び出すことでグラフを見やすくすっきりさせることができます。 実装の手順 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。 numpyを使用してxとyのデータポイントを作成します。 現在の図に対して、インデックス1の位置にサブプロットを追加します。 xとyのデータポイントを赤色(color=red)でプロットします。 x軸のスケールを「log」に設定します。
-
Matplotlibで複数のX軸・Y軸をプロットする方法(twinx / twinyの使い方)
データ分析や可視化では、スケールの異なる2つのデータ系列を同じグラフ上に重ねて表示したいケースがよくあります。Matplotlibでは、twinx() メソッドや twiny() メソッドを使うことで、X軸またはY軸を共有しながら独立したもう一方の軸を持つグラフを簡単に作成できます。 この記事では、左右に異なるY軸を持つグラフを作成する手順を、具体的なコード例とともに解説します。 複数のY軸を持つグラフの作成手順 以下の手順で、左と右に別々のY軸スケールを持つプロットを作成できます。 subplots() メソッドを使用して、図(figure)とサブプロット(axes)を作成します。 最初の