Heim >Backend-Entwicklung >Python-Tutorial >Zeichnen Sie Farbdiagramme in Matplotlib
Mir gefallen die zusätzlichen Farbkarten in Plotly sehr gut, wie zum Beispiel „Dense“ oder „Ice“. Dennoch verwende ich derzeit Matplotlib für die meisten meiner Plots.
Gibt es eine Möglichkeit, Pyplot-Farbkarten in Matplotlib-Figuren zu verwenden?
Wenn ich die Farbkarte „Ice“ als Beispiel nehme, sind die einzigen Ergebnisse, die ich erhalte, RGB-Farben als Zeichenfolgen
import plotly.express as px px.colors.sequential.ice
Das ist nur eine Rücksendung
['rgb(3, 5, 18)', 'rgb(25, 25, 51)', 'rgb(44, 42, 87)', 'rgb(58, 60, 125)', 'rgb(62, 83, 160)', 'rgb(62, 109, 178)', 'rgb(72, 134, 187)', 'rgb(89, 159, 196)', 'rgb(114, 184, 205)', 'rgb(149, 207, 216)', 'rgb(192, 229, 232)', 'rgb(234, 252, 253)']
Das Problem ist, dass ich nicht weiß, wie ich es in Matplotlib-Plots verwenden soll. Ich habe versucht, eine benutzerdefinierte Farbkarte zu erstellen
my_cmap = matplotlib.colors.listedcolormap(px.colors.sequential.ice, name='my_colormap_name')
Aber das gibt mir bei der Verwendung in einer Handlung den folgenden Fehler:
ValueError: Invalid RGBA argument: 'rgb(3, 5, 18)'
Weiß jemand, wie man es richtig umwandelt?
Sie müssen den RGB-String dekodieren:
import plotly.express as px import matplotlib.pyplot as plt import matplotlib.colors as mcolors samples = 20 ice = px.colors.sample_colorscale(px.colors.sequential.ice, samples) rgb = [px.colors.unconvert_from_rgb_255(px.colors.unlabel_rgb(c)) for c in ice] cmap = mcolors.listedcolormap(rgb, name='ice', n=samples)
Demo:
import numpy as np gradient = np.linspace(0, 1, 256) gradient = np.vstack((gradient, gradient)) plt.imshow(gradient, aspect='auto', cmap=cmap) plt.show()
Ausgabe:
Das obige ist der detaillierte Inhalt vonZeichnen Sie Farbdiagramme in Matplotlib. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!