Matplotlib Tutorial - Liniendiagramm

Jinku Hu 30 Januar 2023
  1. Matplotlib Lineare Linie
  2. Matplotlib Gekrümmte Linie
  3. Matplotlib Linientyp
Matplotlib Tutorial - Liniendiagramm

Wir beginnen mit der Darstellung des grundlegenden Diagrammtyps - Liniendiagramm. plot könnte leicht Linien wie Lineare Linie oder gekrümmte Linie ausplotten, und auch verschiedene Konfigurationen wie Farben, Breite, Markergröße, etc. haben.

Matplotlib Lineare Linie

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 9, 10)
y = 2 * x
plt.plot(x, y, "b-")
plt.show()

Es zeichnet die Linie von y=2*x, wobei x im Bereich zwischen 0 und 9 liegt.

Matplotlib Liniendiagramm - Lineare Linie

plt.plot(x, y, "b-")

Es stellt die Daten von x und y mit einem Linienstil von b - blaue Farbe und - - durchgezogene Linie dar.

Matplotlib Gekrümmte Linie

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 4 * np.pi, 1000)
y = np.sin(x)

plt.plot(x, y, "r--")

plt.show()

Es erzeugt eine sinusförmige Wellenform und hat die Linienart als Farbe rot - r und gestrichelte Linie - --.

Matplotlib-Liniendiagramm - gekrümmte Linie

Matplotlib Linientyp

Sie können den Linientyp wie Breite, Farbe und Linienstil mit verschiedenen Eingabeargumenten in der plt.plot() Funktion ändern.

matplotlib.pyplot.plot(*args, **kwargs)

Parameter

Name Descritpion
x, y Die horizontalen / vertikalen Koordinaten der Datenpunkte
fmt Ein Formatstring, z.B. b- für blaue durchgezogene Linie.

**kwargs

Eigentum Beschreibung
color oder c jede beliebige Matplotlib-Farbe
figure eine Abbildung Instanz
label Objekt
linestyle oder ls [‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) | '-']
linewidth oder lw Linienstärke in Punkten
marker Ein gültiger Marker-Stil
markersize oder ms float
xdata 1D-Array
ydata 1D-Array
zorder float

Linienfarbe

Sie haben einige Methoden, um die Farbe im Argument color zu benennen.

Einzelbuchstaben-Alias

The basic built-in colors have the alias as below,

Alias Farbe
b blau
g grün
r rot
c cyan
m magenta
y gelb
k schwarz
w weiß

Matplotlib Liniendiagramm - Farbe Einzelbuchstaben-Alias

Html Hex String

Sie könnten einen gültigen html-Hex-String an den color-Parameter übergeben, wie

color = "#f44265"

RGB-Tupel

Man könnte die Farbe auch mit einem R,G,B Tupel spezifizieren, wobei die R, G, B Werte im Bereich von [0, 1] statt des normalen Bereichs von [0, 255] liegen.

Die Farbe, die oben mit einem html-Hex-String dargestellt wird, hat den RGB-Wert von (0,9569, 0,2588, 0,3891).

color = (0.9569, 0.2588, 0.3891)

Linienstil

Matplotlib hat 4 eingebaute Linienstile,

Linienart
- Matplotlib Liniendiagramm - Linienstil - ‘-’
-- Matplotlib Liniendiagramm - Linienstil - ‘–’
: Matplotlib Liniendiagramm - Linienstil - ‘:’
:- Matplotlib Liniendiagramm - Linienstil - ‘-.’
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 4 * np.pi, 1000)


for index, line_style in enumerate(["-", "--", ":", "-."]):
    y = np.sin(x - index * np.pi / 2)
    plt.plot(x, y, "k", linestyle=line_style, lw=2)

plt.title("Line Style")
plt.grid(True)

plt.show()

Matplotlib Liniendiagramm - Linienstil

Linienbreite

Sie könnten die Linienbreite mit dem Parameter linewidth wie in

linewidth = 2  # unit is points

oder verwenden Sie einfach seine Abkürzung,

lw = 2
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 20, 21)

for line_width in [0.5, 1, 2, 4, 8]:
    y = line_width * x
    plt.plot(x, y, "k", linewidth=line_width)

plt.title("Line Width")
plt.grid(True)

plt.show()

Matplotlib Liniendiagramm - Linienbreite

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook