【Python】Matplotlibで色が連続的に変化する単一の線をグラフに描画する方法
Matplotlibでは、1本の線を複数のセグメントに分割してそれぞれ異なる色で描画することで、色が連続的に変化する線を作成できます。以下の手順で実装してみましょう。
実装の手順
- 図(figure)のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- NumPyを使って x および y のデータポイントを生成します。
- 図とサブプロットのセットを作成します。
- 0から100までの範囲でインデックスを一定間隔ごとに繰り返し処理します。
- ループ内でランダムなRGBカラーを生成し、その色を使って x と y のデータポイントを少しずつプロットしていきます。
- 最後に show() メソッドを呼び出して図を表示します。
サンプルコード
import matplotlib.pyplot as plt
import numpy as np
import random
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(1, 10, 100)
y = np.sin(x)
fig, ax = plt.subplots()
for i in range(0, 100, 5):
r = random.random()
b = random.random()
g = random.random()
color = (r, g, b)
ax.plot(x[i:i+5+1], y[i:i+5+1], c=color, lw=7)
plt.show()コードの解説
このコードのポイントは、np.sin(x) で生成した正弦波データを5点ずつの小さなセグメントに分割しているところです。各セグメントは random.random() によって生成された赤(R)・緑(G)・青(B)のランダムな値を組み合わせた色で描画されるため、全体として一本の線が虹色のように変化して見えます。線の太さは lw=7 で指定しており、色の変化がより分かりやすくなっています。
補足:LineCollectionを使う方法
より効率的に色変化のある線を描きたい場合は、matplotlib.collections.LineCollection を使う方法もあります。この手法では、セグメントごとにカラーマップ(例:viridis や rainbow)を適用できるため、ランダムな色ではなく意図したグラデーションを再現性よく表現できます。
出力結果
上記のコードを実行すると、正弦波の曲線がセグメントごとに異なるランダムな色で描画され、色が連続的に変化するカラフルな一本の線が表示されます。
-
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 を指定してマーカーの見た目
-
Python Matplotlibで円グラフの一部を強調表示して描画する方法
はじめに あなたが最も好きなグラフの種類は何ですか?経営層やビジネスアナリストにこの質問をすると、即座に「円グラフ(パイチャート)!」と答えられるほど、円グラフは割合を視覚的に表現するための最も一般的な手法のひとつです。 この記事では、PythonのMatplotlibを使って基本的な円グラフを描く方法から、explodeパラメータで特定のセクターを強調表示するテクニック、さらにパーセンテージではなく実際の値をラベルとして表示するカスタム関数の実装まで、段階的に解説します。 基本的な円グラフの作成手順 ステップ1:Matplotlibのインストール まず、以下のコマンドでMatplotlibを