2012-04-11 18 views
1

Ich versuche ein 2D-Feld mit imshow zu zeichnen. Ich möchte, dass die Farben nach dem Zoomen neu skaliert werden, damit ich mehr Details sehen kann.matplotlib: Skaliere die Farben von imshow nach dem Zoomen

Die einzige Lösung, die ich kenne, ist, die Koordinaten der Box, die von einem RectangleSelector-Event zurückgegeben wird, zu nehmen und eine Submatrix der Originaldaten neu zu plotten. Gibt es eine bessere Lösung?

Antwort

0

Nach vielen Suchen konnte ich keine Alternativen finden. Es erwies sich jedoch als gut, das mit dem RectangleSelector zu implementieren und nur eine Submatrix der Originaldaten nachzubilden. mit dem draw Befehl anstelle des show Befehl

1

könnten Sie interaktives Plot verwenden mit pylab.ion und den Plot aktualisieren. Erstellen Sie dann in Ihrem Code eine while-Schleife, die Sie zur Tastatureingabe auffordert. Wenn Sie bei jeder Iteration -1 eingeben, ist das Programm vorhanden. Sonst geben Sie vielleicht einen Wert wie x1, y1, x2, y2 ein, der eine Begrenzungsbox darstellt, die Sie in Ihren Koordinatenachsen vergrößern möchten. Dann erstellt Ihr Programm eine neue Figur, berechnet die relevanten Daten auf neuen Gittern mit der Eingabe x1, y1, x2, y2 weiter. Handlung. Wenn Sie alle Eingabekoordinaten speichern, könnten Sie sogar eine spezielle Tastatureingabe für "rückgängig machen" haben (wie in, Zoom zurück zu dem, wo ich gerade war). Dies sollte nicht sehr schwer zu implementieren sein, die einzige Frage wird sein, wie schwer die Berechnung ist, um Ihr Bild erneut auf das vergrößerte Raster zu untersuchen.

Verwandte Themen