Frage

In einer Antwort auf eine frühere Frage von mir bezüglich des Fixierens des Farbbereichs für Streubilder von 4D-Daten schlug Tom10 vor, Werte als Symbole zu zeichnen, um meine Daten zu überprüfen. Eine ausgezeichnete Idee. Ich habe in der Vergangenheit einige ähnliche Demos geführt, aber ich kann für das Leben von mir nicht die Demo finden, an die ich mich daran erinnere, dass ich ganz einfach war.

Was ist also der einfachste Weg, um numerische Werte als Symbol in einer Streuung anstelle von 'o' zu zeichnen? Tom10 schlug PLT.TXT (x, y, Wert) vor- und das ist die Implementierung, die in einer Reihe von Beispielen verwendet wird. Ich frage mich jedoch, ob es eine einfache Möglichkeit gibt, den "Wert" aus meiner Reihe von Zahlen zu bewerten. Kann man einfach sagen: STR (Valuearray)?

Benötigen Sie eine Schleife, um die Werte für das Aufzeichnen zu bewerten, wie im Abschnitt Matplotlib Demo für vorgeschlagen? 3D -Textstreuungspläne?

Ihr Beispiel erzeugt:

alt text
(Quelle: SourceForge.net)

Sie tun jedoch etwas ziemlich Komplexes bei der Bewertung der Standorte und ändern die Textrichtung basierend auf Daten. Gibt es also eine süße Möglichkeit, X, Y, C-Daten zu zeichnen (wobei C ein Wert ist, der oft als Farbe in den Plot-Daten genommen wird- aber stattdessen möchte ich das Symbol machen)?

Ich denke, wir haben eine faire Antwort darauf- ich frage mich nur, ob es einen einfacheren Weg gibt?

War es hilfreich?

Lösung

Der einfachste Weg, den ich gesehen habe, ist:

for x, y, val in zip(x_array, y_array, val_array):
    plt.text(x, y, val)

Übrigens, Sie haben vorgeschlagen, dass Sie Str (Valarray) verwenden, und dies, wie Sie vielleicht bemerkt haben, funktioniert nicht. Um eine Reihe von Zahlen in eine Abfolge von Zeichenfolgen umzuwandeln, die Sie verwenden können

valarray.astype(str)

ein numpy Array bekommen oder,,

[str(v) for v in valarray]

um eine Python -Liste zu erhalten. Aber selbst bei Valarray als richtige Reihenfolge von Strings wird PLT.Text seine Eingänge nicht übertrieben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top