Python・Matplotlibで線に外側の輪郭(アウトライン)を描く方法
PythonのMatplotlibで、線グラフの外側に輪郭(アウトライン)を描きたい場面は意外と多くあります。実は複雑な設定は不要で、「太い線」と「細い線」の2つのプロットを重ねて描画するだけで、美しい外縁の輪郭を実現できます。
この記事では、その具体的な手順とサンプルコードをわかりやすく解説します。
輪郭を描く基本的な考え方
仕組みはシンプルです。線幅の広い下地となる線を先に描き、その上に線幅の狭い別色の線を重ねます。こうすることで、下地の線が両端にはみ出した部分が「輪郭」として見えるようになります。
手順
- 図のサイズを設定し、サブプロット間や周囲の余白(パディング)を調整します。
- numpyを使ってx・yのデータポイントを作成します。
- 同じデータに対して、線幅(linewidth)を10と5に変えて2回プロットします。これにより外縁の輪郭が視覚的に現れます。
- 最後に show() メソッドで図を表示します。
サンプルコード
import numpy as np from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(-10, 10, 100) y = np.sin(x) plt.plot(x, y, lw=10, color='red') plt.plot(x, y, lw=5, color='yellow') plt.show()
コードのポイント解説
- np.linspace(-10, 10, 100): −10から10までの範囲を100等分したx座標を生成し、それに対して正弦波 y = sin(x) を計算しています。
- lw=10, color='red': 赤色の太い線を先に描きます。これが輪郭部分になります。
- lw=5, color='yellow': 同じデータを黄色い細い線で上書き描画します。中央に黄色、その外側に赤い縁取りが残る形です。
出力結果
実行すると、黄色の正弦波の線の周りを赤い輪郭が囲んだグラフが表示されます。色や線幅を自由に変更できるので、強調したいデータを目立たせたいときなどにも応用できます。
なお、応用テクニックとして、背景色と同じ色の太い線を使えば「白抜き風」のデザインにしたり、path_effects の withStroke を使えば1回のプロットで同様の効果を得ることも可能です。
-
Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説
Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線
-
Python Matplotlibで単一のポイント(点)をプロットする方法
Matplotlibを使えば、たった1つのデータポイントでも簡単にグラフ上へプロットできます。ここでは、単一の点をプロットするための基本的な手順を解説します。 単一ポイントをプロットする手順 x と y のリストを、単一の値で初期化します。 plt.xlim() および plt.ylim() を使って、X軸・Y軸の表示範囲を0〜5に設定します。 plt.grid() を呼び出して、現在の線スタイルでグリッドを描画します。 plot() メソッドでxとyをプロットし、marker=o、markeredgecolor=red、markerfacecolor=green を指定してマーカーの見た目