Hi.
Bisher habe ich mein graphische Ausgabe und Aufbereitung immer mittels R und rpy gemacht.
Da ich aber nicht auf allen Rechnern immer R installieren kann und darf, will ich jetzt auf etwas anderes umsteigen.
Habe mir jetzt mal matplotlib angesehen.
Dort habe ich die Funktion showmat gefunden.
Damit klappt es schon ganz gut.
Jedoch habe ich keine matrix die n x n groß ist sondern n x m.
Somit bekomme ich natürlich kein "quadratisches" bild.
Leider habe ich jetzt keine geeignate scale möglichkeit gefunden um das bild quadratisch zu machen.
Dahe die erste frage,
wie kann ich das mit matplotlib machen.
Bzw. als zweite Frage, würdet ihr mir gleich ein anderes Package empfehlen, womit ich matrizen einfach plotten kann.
Vielen Dank,
Andreas
n x m Matrix anzeigen: Matplotlib oder was anderes?
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
Hi,
`matshow` ist in den Möglichkeiten recht beschränkt. Verwende stattdessen `imshow`, `pcolor` oder `pcolormesh`. Hier mal ein kleines Beispiel:
Grüße
Gerrit
Edit: Die matplotlib gallery ist auf jeden Fall einen Blick wert.
`matshow` ist in den Möglichkeiten recht beschränkt. Verwende stattdessen `imshow`, `pcolor` oder `pcolormesh`. Hier mal ein kleines Beispiel:
Code: Alles auswählen
import matplotlib.pyplot as plt
import numpy as np
A = np.random.randn(10,5)
fig = plt.figure(figsize=(6,6))
ax = fig.add_axes([0.1,0.1,0.8,0.8])
ax.pcolormesh(A)
plt.show()
Gerrit
Edit: Die matplotlib gallery ist auf jeden Fall einen Blick wert.
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
hi.
danke für die info.
hab grad gesehen, das dein A ja ne echte matrix ist.
ich hab hier "leider" listen in listen.
muss mal schauen, wie ich meine liste in liste matrix in ne echte konvertiert bekomme.
aber schonmal danke dafür.
das ist genau das, was ich gesucht habe.
danke für die info.
hab grad gesehen, das dein A ja ne echte matrix ist.
ich hab hier "leider" listen in listen.
muss mal schauen, wie ich meine liste in liste matrix in ne echte konvertiert bekomme.
aber schonmal danke dafür.
das ist genau das, was ich gesucht habe.
The Spirit hat geschrieben:muss mal schauen, wie ich meine liste in liste matrix in ne echte konvertiert bekomme.
Code: Alles auswählen
>>> numpy.matrix([[1,2,3], [4,5,6], [7,8,9]])
matrix([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Das Leben ist wie ein Tennisball.
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
ich mach das bei mir so (matrix ist ein beispiel wie meine liste in liste aussieht)
leider liefert mir das dann einen fehler
was mache ich hier falsch? steh da grad irgendwie auf dem schlauch.
danke
Code: Alles auswählen
import matplotlib.pyplot as plt
import numpy as np
det_matrix = ([[1,2,3], [2,2,3], [2,4,4], [1,2,1]])
numpy_matrix = np.matrix(det_matrix)
fig = plt.figure(figsize=(6,6))
ax = fig.add_axes([0.1,0.1,0.8,0.8])
ax.pcolormesh(numpy_matrix)
plt.show()
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "D:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 236, in resize
self.show()
File "D:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 239, in draw
FigureCanvasAgg.draw(self)
File "D:\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 401, in draw
self.figure.draw(self.renderer)
File "D:\Python27\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "D:\Python27\lib\site-packages\matplotlib\figure.py", line 884, in draw
func(*args)
File "D:\Python27\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "D:\Python27\lib\site-packages\matplotlib\axes.py", line 1983, in draw
a.draw(renderer)
File "D:\Python27\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "D:\Python27\lib\site-packages\matplotlib\collections.py", line 1281, in draw
self.update_scalarmappable()
File "D:\Python27\lib\site-packages\matplotlib\collections.py", line 529, in update_scalarmappable
raise ValueError('Collections can only map rank 1 arrays')
ValueError: Collections can only map rank 1 arrays
danke
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
argh
danke für den test.
dann werd ich mal montag in der arbeit suchen müssen wo der fehler ist.
danke für den test.
dann werd ich mal montag in der arbeit suchen müssen wo der fehler ist.
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
hi.
hab es gerade getestet, leider bekomm ich immer noch den gleichen fehler.
jemand ne idee, woran das bei mir liegen könnte?
danke
hab es gerade getestet, leider bekomm ich immer noch den gleichen fehler.
jemand ne idee, woran das bei mir liegen könnte?
danke
Hab dein Snippet gerade mit Matplotlib 1.1.0 getestet und bekomme ebenfalls deine Fehlermeldung. Scheint als haben "pcolor" und "pcolormesh" Probleme mit Matrizen. Wenn du stattdessen NumPy Arrays benutzt funktioniert es bei mir einwandfrei.
Grüße
Gerrit
Grüße
Gerrit
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
hi.
muss den thread nochmals nach vorne holen.
jetzt klappt das alle schon so wie ich mir das vorstelle.
momentan bin ich dabei, das ich die gui (mit wx) in der ich meine auszuwertende datei darstelle und das pcolormesh in eine gesamtgui zu packen versuche.
leider habe ich hier noch probleme.
kann mir da vielleicht jemand nen schups in die richtige richtung geben?
danke
muss den thread nochmals nach vorne holen.
jetzt klappt das alle schon so wie ich mir das vorstelle.
momentan bin ich dabei, das ich die gui (mit wx) in der ich meine auszuwertende datei darstelle und das pcolormesh in eine gesamtgui zu packen versuche.
leider habe ich hier noch probleme.
kann mir da vielleicht jemand nen schups in die richtige richtung geben?
danke