Seite 1 von 1
Matplotlib Farbkodierung von Werten
Verfasst: Dienstag 23. Januar 2018, 15:12
von g123
Hey Leute!
Habe ein Paar listen mit Werten vorliegen.
Ich habe im ersten schritt, aus jedem dieser Listen einen Graph erstellt.
Im zweiten Schritt möchte ich, mittels Farbkodierung alle Listen darstellen. Und das so:
Jeder Vertikaler "Pixel" bzw "Einheit" Soll eine Liste sein, hohe Werte sollen zb eine Helle Farbe sein und niedrige eine dunkle, und dann möchte ich die listen einander Reihen. Ähnlich wie Bei einem B-Scan.
Habt ihr eine Idee wie so etwas machbar ist und ob es überhaupt machbar ist mit matplotlib?
Re: Matplotlib Farbkodierung von Werten
Verfasst: Dienstag 23. Januar 2018, 15:36
von noisefloor
Hallo,
das liest sich alles sehr kryptisch bis unverständlich... Was hast zu z.B. für eine Graphen bis jetzt gezeichnet? Linie? Balken? Donut? ...? Und was heißt "Jeder Vertikaler "Pixel" bzw "Einheit" Soll eine Liste sein,"? Hast du mal ein Beispiel?
Ansonsten: auf der Seite
https://matplotlib.org/gallery/index.html findest du ein breites Spektrum an Beispielen, was Matplotlib so kann, inkl. einigen "exotischen" Darstellungen. Im Beispiel "Gradient Bar" wird dargestellt, wie man Farbgradienten in einem Balkendiagramm hin bekommt.
Gruß, noisefloor
Re: Matplotlib Farbkodierung von Werten
Verfasst: Dienstag 23. Januar 2018, 19:34
von MagBen
Kann es sein, dass du ein 2D-Array plotten möchtest?
Die Werte Farbcodiert wie die Höhenwerte bei einer Landkarte?
z.B. so:

oder so

Re: Matplotlib Farbkodierung von Werten
Verfasst: Mittwoch 24. Januar 2018, 18:46
von g123
Hey Leute ! Hab mal wieder überstürzt gefragt , ich bin jetzt mittlerweile zu einem Ergebnis gekommen.
Also ich probier es nochmal zu erklären, ich glaub @magben hat mich verstanden.
So habe einige Listen: A=[a1,a2,a3,a4,a5], B=[b1,b2,b3...],... usw.. die möchte ich dann in einem Diagramm haben in der Form:
|a1b1
|a2b2
|a3b3
|a4b4
|___________Anstatt der Werte eine Farbe zu ordnen.
So mein Vorgehen:
Np Array erstellt und erstmal per Hand ein paar listen hinzugefügt, dann die Array Transponiert und mit plt.Imshow dargestellt.
So mein letztes Problem: wie kann ich Automatisch mit einer For Schleife die ganzen liste durchgehen und dem np array als neue "Zeile" hinzufügen?
Ich kann auch nicht vorher sagen wie viele Listen es sein werden, weil die Anzahl immer unterschiedlich ist.
Hat einer ne Idee?
Re: Matplotlib Farbkodierung von Werten
Verfasst: Mittwoch 24. Januar 2018, 19:06
von Sirius3
@g123: am besten, Du zeigst was Du versucht hast. Generell muß man eigentlich gar nichts machen:
Re: Matplotlib Farbkodierung von Werten
Verfasst: Mittwoch 24. Januar 2018, 19:53
von g123
Code: Alles auswählen
B = np.absolute(np.array([DF["Ort1"]["aufnahmen"][2],
DF["Ort2"]["aufnahmen"][3],
DF["Ort3"]["aufnahmen"][2]]))
plt.figure(1)
plt.imshow(B.T,cmap="Reds")
plt.colorbar()
DF ist mein dict. Er besteht aus mehreren Orten, diese haben jeweils 5 Listen mit 10000 integern.
So jetzt habe ich noch alles per hand in den numpy array reingeschrieben. So jetzt würde ich gerne als nächstes das ganze automatisch den numpy array ausfüllen lassen.
Ich möchte über die Orte iterieren und dann auch jeweils über die 5 Listen an jedem Ort, jedoch hab ich noch nicht verstanden wie ich einen numpy array mittels for schleife ausfülle.
Re: Matplotlib Farbkodierung von Werten
Verfasst: Mittwoch 24. Januar 2018, 20:29
von Sirius3
@g123: als ersten Schritt füllt man eine Liste per for-Schleife.
Re: Matplotlib Farbkodierung von Werten
Verfasst: Mittwoch 24. Januar 2018, 23:42
von g123
ja aber ich will ja einen 2d numpy array füllen und das bereitet mir Probleme, jede liste mit der ich den 2d-numpy array fülle soll eine neue zeile sein..
ich weiß aber vorher nicht wie die Dimension vom numpy array ist und auch nicht wie ich einen numpy array fülle?
Re: Matplotlib Farbkodierung von Werten
Verfasst: Donnerstag 25. Januar 2018, 00:06
von Sirius3
@g123: kein Numpy-Array sondern eine Liste. Zweiter Schritt: Liste in Array umwandeln.
Re: Matplotlib Farbkodierung von Werten
Verfasst: Donnerstag 25. Januar 2018, 10:33
von g123
@Sirius3 Danke !!!!!
So hat geklappt, jetzt noch eine letzte Frage: Meine Listen sind sehr lang, jedoch habe ich nicht so viele Listen, deshalb sieht mein Bild ziemlich schmal aus, weiß einer wie ich das breiter machen kann?

Re: Matplotlib Farbkodierung von Werten
Verfasst: Donnerstag 25. Januar 2018, 11:34
von Sirius3
Das Stichwort ist "aspect ratio".