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

Matplotlibのループプロットでマーカーとラインに同じ色を設定する方法

Matplotlibでループ処理により複数のデータ系列を描画する際、「マーカー」と「ライン」に同じ色を割り当てたい場面はよくあります。本記事では、そのための基本的な手順と、色を確実に揃えるための実践的な方法をコード例とともに解説します。

基本の手順

  • numpy を使用して mnx のデータポイントを初期化します。
  • figure() メソッドで新しい図を作成、または既存の図をアクティブ化します。
  • clf() メソッドで図をクリアします。
  • subplot() メソッドで現在の図にサブプロットを追加します。
  • itertools.cycle を利用して、複数種類のマーカーを順番に取得できるようにします。
  • 1 から n までの範囲をループで反復処理します。
  • plot() メソッドでマーカーとラインを同じ色で描画します。
  • show() メソッドで図を表示します。

コード例

import numpy as np
import itertools
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

m = 5
n = 5
x = np.zeros(shape=(m, n))

plt.figure()
plt.clf()
plt.subplot(111)

marker = itertools.cycle(('o', 'v', '^', '<', '>', 's', '8', 'p'))

for i in range(1, n):
    x = np.dot(i, [1, 1.1, 1.2, 1.3])
    y = x ** 2
    # マーカーとラインを1回の呼び出しで描画すると、同じ色が自動的に適用される
    plt.plot(x, y, linestyle='-', marker=next(marker))

plt.show()

マーカーとラインの色を揃えるポイント

マーカー専用のプロットとライン専用のプロットを別々に plot() で呼び出すと、Matplotlib は呼び出しごとにカラーサイクルを進めるため、意図せずマーカーとラインの色が異なってしまうことがあります。色を確実に一致させるには、以下のいずれかの方法がおすすめです。

方法1:1回の plot() 呼び出しにまとめる

マーカーとラインスタイルを同時に指定すれば、両者に自動的に同じ色が適用されます。これが最もシンプルで推奨される方法です。

plt.plot(x, y, linestyle='-', marker=next(marker))

方法2:get_color() で色を取得して再利用する

一度描画したラインオブジェクトから色を取り出し、他の描画に使い回すこともできます。複雑なグラフを組み合わせる場合に便利です。

line, = plt.plot(x, y, linestyle='-', marker=next(marker))
c = line.get_color()
plt.plot(x * 1.05, y, color=c, linestyle='--')

出力結果

Matplotlibのループプロットでマーカーとラインに同じ色を設定する方法

  1. MatplotlibでRectangle(長方形)に色を設定する方法

    Matplotlibで長方形(Rectangle)に色を設定するには、以下の手順に従います。手順figure() メソッドを使用して、新しい図(Figure)を作成するか、既存の図をアクティブにします。add_subplot() メソッドを使用して、サブプロット構成の一部として図に ~.axes.Axes を追加します。長方形は、アンカーポイント(基準座標)と幅・高さを指定することで定義できます。作成したRectangleパッチを add_patch() でプロットに追加します。xlim() および ylim() メソッドを使用して、x軸とy軸の表示範囲を設定します。図を表示するには、show

  2. Matplotlibで2本の点線をプロットする方法|マーカー・線種・凡例の設定も解説

    はじめに この記事では、Pythonの可視化ライブラリ「Matplotlib」を使って、2本の線を1つのグラフに描画し、それぞれに異なる線種(点線・破線)や色、太さを設定する方法を解説します。 コーディングを始める前に、まず次のコマンドでMatplotlibをインポートしておきましょう。 import matplotlib.pyplot as plt Pyplotは、MatplotlibをMATLABのように直感的に操作できるようにするためのコマンドスタイル関数のコレクションです。グラフの描画からラベル付けまで、ほとんどの操作をこのモジュール経由で行います。 アルゴリズム(処理の流れ) ステ