Elegante Methode, um eine Zeichenfolge einer zufälligen Farbmatplotlib zuzuordnen

8

Ich möchte die Beschriftungen einiger Daten in Farben für die Darstellung mit Matplotlib

übersetzen

Ich habe eine Liste von Namen ["bob", "joe", "andrew", "pete"]

Gibt es eine eingebaute Methode, um diese Zeichenfolgen in matplotlib mit Farbwerten zu verknüpfen? Ich dachte darüber nach, zufällig Hex-Werte zu erstellen, aber ich könnte mit ähnlichen Farben oder nicht sichtbaren Farben enden.

Ich habe ein paar verschiedene Möglichkeiten ausprobiert, um Schlüsselwerte aus der folgenden cmap-Antwort zu erstellen:

das:

%Vor%     
ford prefect 07.08.2015, 17:04
quelle

2 Antworten

18

Wählen Sie eine Farbkarte , z. B. viridis :

%Vor%

Die Colormap, cmap , ist eine Funktion, die ein Array von Werten von 0 bis 1 aufnehmen und sie RGBA-Farben zuordnen kann. np.linspace(0, 1, len(names)) erzeugt ein Array von gleich beabstandeten Zahlen von 0 bis 1 mit der Länge len(names) . Also,

%Vor%

wählt gleichmäßig beabstandete Farben aus der Farbpalette viridis aus.

Beachten Sie, dass dies nicht den Wert der Zeichenfolge verwendet, sondern nur die Ordinalposition der Zeichenfolge in der Liste, um eine Farbe auszuwählen. Beachten Sie auch, dass dies keine zufälligen Farben sind. Dies ist nur eine einfache Möglichkeit, um aus einer beliebigen Liste von Strings eindeutige Farben zu erzeugen.

Also:

%Vor%

Das Problem mit

%Vor%

ist, dass der c -Parameter von ax.scatter eine Sequenz von RGB erwartet ( EIN) Werte mit der gleichen Länge wie x oder eine einzelne Farbe. clr ist ein Diktat, keine Sequenz. Damit Wenn colors die gleiche Länge wie x hat, könnten Sie

verwenden %Vor%     
unutbu 07.08.2015, 17:09
quelle
0
___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ tag123matplotlib ___ Matplotlib ist eine Grafikbibliothek für Python, die interaktiv verwendet oder in eigenständige GUIs eingebettet werden kann. Seine kompakte "pyplot" -Schnittstelle ähnelt den Zeichenfunktionen von MATLAB®. ___ qstntxt ___

Ich möchte die Beschriftungen einiger Daten in Farben für die Darstellung mit Matplotlib

übersetzen

Ich habe eine Liste von Namen %code%

Gibt es eine eingebaute Methode, um diese Zeichenfolgen in matplotlib mit Farbwerten zu verknüpfen? Ich dachte darüber nach, zufällig Hex-Werte zu erstellen, aber ich könnte mit ähnlichen Farben oder nicht sichtbaren Farben enden.

Ich habe ein paar verschiedene Möglichkeiten ausprobiert, um Schlüsselwerte aus der folgenden cmap-Antwort zu erstellen:

das:

%Vor%     
___ qstnhdr ___ Elegante Methode, um eine Zeichenfolge einer zufälligen Farbmatplotlib zuzuordnen ___ antwort43787098 ___

Ich benutze die Hash-Funktion, um Zahlen zwischen 0 und 1 zu erhalten. Sie können dies auch verwenden, wenn Sie nicht alle Labels kennen:

%Vor%     
___ answer31883160 ___

Wählen Sie eine Farbkarte , z. B. %code% :

%Vor%

Die Colormap, %code% , ist eine Funktion, die ein Array von Werten von 0 bis 1 aufnehmen und sie RGBA-Farben zuordnen kann. %code% erzeugt ein Array von gleich beabstandeten Zahlen von 0 bis 1 mit der Länge %code% . Also,

%Vor%

wählt gleichmäßig beabstandete Farben aus der Farbpalette %code% aus.

Beachten Sie, dass dies nicht den Wert der Zeichenfolge verwendet, sondern nur die Ordinalposition der Zeichenfolge in der Liste, um eine Farbe auszuwählen. Beachten Sie auch, dass dies keine zufälligen Farben sind. Dies ist nur eine einfache Möglichkeit, um aus einer beliebigen Liste von Strings eindeutige Farben zu erzeugen.

Also:

%Vor%

Das Problem mit

%Vor%

ist, dass der %code% -Parameter von %code% eine Sequenz von RGB erwartet ( EIN) Werte mit der gleichen Länge wie %code% oder eine einzelne Farbe. %code% ist ein Diktat, keine Sequenz. Damit Wenn %code% die gleiche Länge wie %code% hat, könnten Sie

verwenden %Vor%     
___
pomber 04.05.2017 15:27
quelle

Tags und Links