Wie erstelle ich einen Farbverlauf in Python?

Ich möchte eine neue Farbkarte erstellen, die zwischen Grün und Blau interpoliert (oder in diesem Fall zwischen zwei anderen Farben). Mein Ziel ist es, etwas zu bekommen wie:

Zunächst bin ich mir nicht sicher, ob dies durch lineare Interpolation von Blau und Grün möglich ist. Wenn dies möglich ist, bin ich mir nicht sicher, wie dies geschehen soll, habe ich eine Dokumentation zur Verwendung einer matplotlib-Methode gefunden, die angegebene RGB-Werte interpoliert.Hie

Die eigentliche Schwierigkeit besteht darin, zu verstehen, wie "cdict2" unten funktioniert. Für das Beispiel heißt es in der Dokumentation:

"Beispiel: Angenommen, Sie möchten, dass Rot über die untere Hälfte von 0 auf 1 steigt, Grün über die mittlere Hälfte und Blau über die obere Hälfte. Dann würden Sie Folgendes verwenden:"

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

plt.figure()
a=np.outer(np.arange(0,1,0.01),np.ones(10))
cdict2 = {'red':   [(0.0,  0.0, 0.0),
                   (0.5,  1.0, 1.0),
                   (1.0,  1.0, 1.0)],
         'green': [(0.0,  0.0, 0.0),
                   (0.25, 0.0, 0.0),
                   (0.75, 1.0, 1.0),
                   (1.0,  1.0, 1.0)],
         'blue':  [(0.0,  0.0, 0.0),
                   (0.5,  0.0, 0.0),
                   (1.0,  1.0, 1.0)]} 
my_cmap2 = matplotlib.colors.LinearSegmentedColormap('my_colormap2',cdict2,256)
plt.imshow(a,aspect='auto', cmap =my_cmap2)                   
plt.show()

EDIT: Ich verstehe jetzt, wie die Interpolation funktioniert, zum Beispiel wird dies eine Rot-Weiß-Interpolation ergeben:

Weiß bis rot: In den Spalten der "Matrix" für jede Farbe haben wir in Spalte eins die x-Koordinate, an der die Interpolation beginnen und enden soll, und die beiden anderen Spalten sind die tatsächlichen Werte für den Farbwert Koordinate

cdict2 = {'red':   [(0.0,  1.0, 1.0),
                    (1.0,  1.0, 1.0),
                    (1.0,  1.0, 1.0)],
         'green': [(0.0,  1.0, 1.0),
                   (1.0, 0.0, 0.0),
                   (1.0,  0.0, 0.0)],
     'blue':  [(0.0,  1.0, 1.0),
               (1.0,  0.0, 0.0),
               (1.0,  0.0, 0.0)]} 

s ist offensichtlich, dass der von mir gewünschte Farbverlauf durch Interpolation im RGB-Raum nur sehr schwer zu erstellen ist .

Antworten auf die Frage(6)

Ihre Antwort auf die Frage