Python matplotlib-scatter-plot : ändern der Farbe von Datenpunkten basierend auf bestimmten Bedingungen
Habe ich folgende Daten (vier equal-length arrays) :
a = [1, 4, 5, 2, 8, 9, 4, 6, 1, 0, 6]
b = [4, 7, 8, 3, 0, 9, 6, 2, 3, 6, 7]
c = [9, 0, 7, 6, 5, 6, 3, 4, 1, 2, 2]
d = [La, Lb, Av, Ac, Av, By, Lh, By, Lg, Ac, Bt]
Ich bin so ein 3d-plot des arrays a, b, c :
import pylab
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(a,b,c)
plt.show()
Nun, ich will Farbe diese verstreuten Punkte mit Hilfe des array mit dem Namen 'd' so, dass, wenn der erste Buchstabe der entsprechenden 'i' te element mit dem Wert in d ist 'L', dann die Farbe der Punkt rot, wenn es beginnt mit 'A' Farbe, die es grün und wenn es beginnt mit "B", Farbe blau.
So, der erste Punkt (1,4,9) sollte rot sein, die zweite(4,7,0) rot, die Dritte(5,8,7) sollte grün sein und so weiter..
Ist es möglich, dies zu tun? Bitte helfen Sie, wenn Sie eine Idee haben 🙂
Ist
Und vermutlich sind Sie mit
Sie haben Recht, es ist eigentlich
d
eine Liste von strings oder sind die Variablennamen? Wenn strings, sollte es so Aussehen: d = ['La', 'Lb', 'Av', ...]
Und vermutlich sind Sie mit
from mpl_toolkits.mplot3d import Axes3D
irgendwo in deiner Datei.Sie haben Recht, es ist eigentlich
d = ['La', 'Lb', 'Av', ...]
. Ich habe eine komplizierte großes problem, ich arbeite, und dies ist nur ein kleines Teil, wo ich steckengeblieben.. also ich habe dieses einfache Beispiel, um meine Frage.. vergessen im Auge zu behalten, diese zwei kleinen details.. sorry!InformationsquelleAutor Panchi | 2013-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Dokumentation für scatter erklärt haben, können Sie passieren die
c
argument:So etwas wie
erzeugen soll,
np.select
statt ein dict, aber Sie müssen klug sein, zu den ersten char aus einem array von strings:c=np.select(map(lambda s: s==da.view('S1,S1')['f0'], ['L', 'A', 'B']),['red','green','blue'])
oderc=np.select(map(lambda s: s==da.view('S1,S1')['f0'], use_colours.keys()),use_colours.values())
, aber das ist es nicht Wert, es sei denn, die Anzahl der Farben ist klein und die Anzahl der Punkte groß ist.danke, ich erwarte nicht, dass es (Zuordnung Farbe nach dem ersten alphabet der entsprechenden Worte) so einfach 🙂 danke Tonnen!!!
InformationsquelleAutor DSM
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter
"c kann eine einzelne Farbe, format-string, oder eine Reihe von Farbe technische Daten der Länge N, oder eine Folge von N zahlen abgebildet werden, um Farben mit der cmap und der norm angegeben über kwargs (siehe unten). Beachten Sie, dass c sollten nicht einen einzigen numerischen RGB-oder RGBA-Sequenz, denn das ist nicht unterscheidbar von einem array von Werten zu colormapped. c kann ein 2-D array, in dem die Zeilen RGB oder RGBA, allerdings."
Haben Sie versucht das?
InformationsquelleAutor Garth5689