Wie man die Linienbreite von Linien in Matplotlib Legend ändert

Suraj Joshi 30 Januar 2023
  1. set_linewidth() Methode zum Setzen der Linienbreite in der Matplotlib legend
  2. matplotlib.pyplot.setp() Methode zur Einstellung der Linienbreite in der Matplotlib legend
Wie man die Linienbreite von Linien in Matplotlib Legend ändert

Wir können die Linienbreite (Linienstärke) von Linien in einer Python-Matplotlib-Legende ändern, indem wir die set_linewidth()-Methode des Legenden-Objekts und die setp()-Methode der artist-Objekte verwenden.

set_linewidth() Methode zum Setzen der Linienbreite in der Matplotlib legend

Der Parameter linewidth in der Plotfunktion kann verwendet werden, um die Breite des Plots eines bestimmten Objektes zu steuern, und die Methode set_linewidth() kann verwendet werden, um die Breite der Linien der Legende in Matplotlib zu steuern.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, ax = plt.subplots(figsize=(8, 6))

ax.plot(x, y1, c="r", label="sinx", linewidth=3.0)
ax.plot(x, y2, c="g", label="cosx", linewidth=5.0)

leg = plt.legend()

leg.get_lines()[0].set_linewidth(6)
leg.get_lines()[1].set_linewidth(10)

plt.show()

Ausgabe:

Linienbreite der Linien einer Legende in Matplotlib mit der Methode set_linewidth setzen

Die Linienbreite von zwei Linien im Python-Matplotlib-Plot ist 3.0 bzw. 5.0, und die Linienbreite der Linien in der Legende verwendet standardmäßig dieselbe Linienbreite wie im Plot.

leg = plt.legend()

leg.get_lines()[0].set_linewidth(6)

leg ist das Python-Matplotlib-Objekt legend und leg.get_lines() gibt die Liste der Linieninstanzen in der Legende zurück.

set_linewidth() könnte die Linienbreite (Liniendicke) der Legendenlinie so ändern, dass sie einen anderen Wert als im Plot hat.

matplotlib.pyplot.setp() Methode zur Einstellung der Linienbreite in der Matplotlib legend

Die Methode matplotlib.pyplot.setp() erlaubt es uns, die Eigenschaft von Pyplot-Objekten zu setzen. Wir können den Parameter linewidth der Funktion setp() verwenden, um die Linienbreite eines bestimmten Legendenobjekts zu setzen.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, ax = plt.subplots(figsize=(8, 6))

ax.plot(x, y1, c="r", label="sinx", linewidth=3.0)
ax.plot(x, y2, c="g", label="cosx", linewidth=5.0)

leg = plt.legend()

leg_lines = leg.get_lines()
leg_texts = leg.get_texts()

plt.setp(leg_lines[0], linewidth=6)
plt.setp(leg_lines[1], linewidth=12)
plt.setp(leg_texts, fontsize=10)

plt.show()

Ausgabe:

Linienbreite der Linien einer Legende in Matplotlib mit der setp-Methode setzen

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Matplotlib Legend