Matplotlibでマスクされた散布図の点をプロットし、マスク領域の境界線を追加する方法
MatplotlibとNumPyのマスク配列(masked array)機能を組み合わせると、条件に応じて散布図のデータ点を分類し、それぞれ異なるスタイルで可視化できます。さらに、plot()メソッドで曲線を描くことで、マスクされた領域の境界を視覚的に示すことが可能です。
実装の手順
- figureサイズを設定し、サブプロット間および周囲の余白を自動調整します。
- NumPyを使って N、r0、x、y、area、c、r、area1、area2 の各データを作成します。
scatter()メソッドで x と y のデータ点をプロットします。- マスクされた領域の境界を示すため、
plot()メソッドで曲線を描画します。 show()メソッドで図を表示します。
コード例
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True N = 100 r0 = 0.6 x = 0.9 * np.random.rand(N) y = 0.9 * np.random.rand(N) area = (20 * np.random.rand(N))**2 c = np.sqrt(area) r = np.sqrt(x ** 2 + y ** 2) area1 = np.ma.masked_where(r < r0, area) area2 = np.ma.masked_where(r >= r0, area) plt.scatter(x, y, s=area1, marker='^', c=c) plt.scatter(x, y, s=area2, marker='o', c=c) theta = np.arange(0, np.pi / 2, 0.01) plt.plot(r0 * np.cos(theta), r0 * np.sin(theta)) plt.show()
コードの解説
このコードでは、まず原点から各データ点までの距離 r を計算し、np.ma.masked_where() を使ってデータを2つのグループに分割しています。r < r0 の点は三角形マーカー('^')、r >= r0 の点は円形マーカー('o')で描画され、マークのサイズは area、色はその平方根 c に基づいて変化します。
最後に、半径 r0 の円弧を第1象限の範囲で plot() により描画することで、2つの領域の境界線が明確になり、どの点がマスク対象かひと目でわかるグラフになります。
出力結果

-
MatplotlibのSeabornラインプロットで破線を描画する方法
Seabornのラインプロット(lineplot)で破線を描画したい場合は、lineplot()メソッドの引数にlinestyle=dashedを指定するだけで実現できます。この設定により、データポイントを結ぶ線が破線スタイルで表示され、グラフの視認性やデザイン性を高めることができます。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。NumPyを使用して、x座標とy座標のデータポイントを作成します。lineplot()メソッドの引数にx・yのデータポイントとlinestyle=dashedを渡して、破線のラインプロットを描画します。図を表示するには、show(
-
Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説
Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線