3.1.4. Farben#
Für die meisten Bildelemente kann eine Farbe angegeben werden. Damit lassen sich verschiedene Datensätze voneinander unterscheiden.
import matplotlib.pyplot as plt
Farbnamen#
Soll explizit eine bestimmte Farbe verwendet werden, so ist es am einfachsten die vordefinierten Farbnamen, siehe Beispiel, zu verwenden. In der plt.plot
-Methode geschieht dies über das color
-Argument.
x = []
y0 = []
y1 = []
y2 = []
y3 = []
for i in range(20):
cx = -5 + i*0.5
x.append( cx )
y0.append( -2 )
y1.append( cx )
y2.append( 8 - cx**2 )
y3.append( 0.2*cx**3 - 2*cx )
plt.plot(x, y0, color='orange')
plt.plot(x, y1, color='steelblue')
plt.plot(x, y2, color='khaki')
plt.plot(x, y3, color='forestgreen');
Werden nicht explizit Farben vorgegeben, wird ein vordefiniertes Farbtableau verwendet.
plt.plot(x, y0, label='C0')
plt.plot(x, y1, label='C1')
plt.plot(x, y2, label='C2')
plt.plot(x, y3, label='C3')
plt.legend();
Auf diese Farbsequenz kann über die Zeichenkette CN
zugegriffen werden, wobei das N
den Index angibt. So ist beispielsweise C2
die dritte Farbe in dieser Sequenz.
plt.plot(x, y0, color='C0', label='C0')
plt.plot(x, y2, color='C2', label='C2')
plt.legend();
Farbpaletten#
Für kontinuierliche Farbverläufe werden Farbpaletten verwendet. Wie in diesem Beispiel gezeigt, stehen viele Paletten zur auswahl.
Bei Punktwolken kann die Farbe jedes Punktes definiert werden. Dies kann über einen Wert erfolgen, welcher mit einer Farbpalette in eine Farbe übersetzt wird. Zum Ablesen des zugehörigen Werts, kann eine Farbskala mit der plt.colorbar
-Methode eingeblendet werden.
import math as m
import random
n = 1000
px = []
py = []
pr = []
for i in range(n):
cx = m.sin(i)
cy = m.cos(i)
cr = random.random() # m.exp(-i*i/10000)
px.append(cr * cx)
py.append(cr * cy)
pr.append(cr*20)
plt.figure(figsize=(5,4), dpi=100)
plt.scatter(px, py, c=pr)
plt.colorbar(label='Farbwert');
Die verwendete Farbpalette kann mit dem cmap
-Argument definiert werden.
plt.figure(figsize=(5,4), dpi=100)
plt.scatter(px, py, c=px, cmap='seismic')
plt.colorbar(label='x-Wert');
Transparenz#
Neben dem Farbwert kann in vielen Fällen auch die Transparenz angegeben werden. Sie nimmt dabei Werte zwischen 0 und 1 an, wobei 0 (0%) einer komplett durchsichtigen Darstellung und 1 (100%) einer undurchsichtigen entspricht. Die Transparenz wird über das alpha
-Argument übergeben.
plt.plot(x, y2, color='C0')
plt.plot(x, y2, color='C0', ls='', marker='o', alpha=0.3)
plt.plot(x, y3, color='C1')
plt.plot(x, y3, color='C1', ls='', marker='o', alpha=0.3);
plt.figure(figsize=(4,4), dpi=100)
plt.scatter(px, py, s=100, alpha=0.1, edgecolor='None');