Zeichnen Sie Farbdiagramme in Matplotlib

王林
Freigeben: 2024-02-14 18:30:04
nach vorne
978 Leute haben es durchsucht

在 Matplotlib 中绘制颜色图

Frageninhalt

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
Nach dem Login kopieren

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)']
Nach dem Login kopieren

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')
Nach dem Login kopieren

Aber das gibt mir bei der Verwendung in einer Handlung den folgenden Fehler:

ValueError: Invalid RGBA argument: 'rgb(3, 5, 18)'
Nach dem Login kopieren

Weiß jemand, wie man es richtig umwandelt?


Richtige Antwort


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)
Nach dem Login kopieren

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()
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!