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 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

Schreibe einen Kommentar