2017-06-26 5 views
0

Ich erstelle ein Streudiagramm in MatPlotLib und ich versuche, die Farbe der Punkte von einem dritten Parameter (unabhängig von X und Y) abhängig zu machen. Durch Setzen von c = dritte_variable werden jedoch alle Punkte gleichfarbig.MatPlotLib Scatter Plot Punkte Alle haben die gleiche Farbe

Meine Plotdaten befinden sich in einem Wörterbuch mit einem Tupel von x- und y-Daten als Schlüssel und der dritte Parameter (Häufigkeit, reicht von 1 bis etwa 1000) als Wert. Beispielartikel: {[2 10]: 50}

Ich möchte die Farben der Punkte an Häufigkeit gebunden. Als Ausgangspunkt möchte ich es so machen, dass Punkte mit hoher Frequenz dunkler und Punkte mit niedriger Frequenz heller sind.

Hier ist meine aktuelle Ausgabe: current output Und hier ist mein Code:

for key in pairs_hash: 
    plt.scatter(key[0], key[1], c=pairs_hash[key], cmap=plt.cm.coolwarm) 

plt.show() 

Danke für die Hilfe!

+0

Mehr Code wird benötigt, um genauer hinsehen zu können – user1767754

Antwort

2

Ich vermute, dass Ihre große schlechte Design-Wahl ist, die Punkte in der Schleife einen Punkt nach dem anderen zu zeichnen. Warum nicht alle auf einmal plotten?

+0

Ich habe die Änderungen vorgenommen, die Sie vorgeschlagen haben, aber die Ergebnisse sind die gleichen. Könnte das Problem sein, dass MatPlotLib c als eine Folge von Gleitkommazahlen interpretiert (wie Sie es geben würden, wenn Sie ein Array von Zahlenwerten hätten) und nicht als singulären Wert und versuchen würde, diese Sequenz auf alle Punkte anzuwenden? –

+0

Siehe aktualisierte Antwort. Keine Schleife wird benötigt. – DyZ

+0

Würde es Ihnen etwas ausmachen, die Syntax der ersten beiden Zeilen ein wenig zu erklären? Ich bin kein Python-Programmierer (Schule war C++, Arbeit ist JavaScript), aber ich würde vermuten, dass es nur eine Frage der Tupel ist? –

Verwandte Themen