2017-08-26 1 views
-1

BackGroundWie erstellt man ein benutzerdefiniertes Textfeld oben auf der Matplotlib-Figur?

ich recht Plotdaten als Boxplots und Streudiagramme diese Software mache. Um den Graphen informativer und übersichtlicher zu gestalten, sollte der Benutzer in der Lage sein, eine Textbox über die Figur zu ziehen, wenn er Notizen hinzufügen möchte. Auf diese Weise, wenn Menschen die Figur teilen, kann sie durch diese Notizen erklärt werden.

aktuelle Ansatz und Problem

Ich habe annotate Funktion verwendet, um eine Textbox in der oberen rechten Ecke des Bildschirms zu erstellen um den Benutzer zu sagen, wie viele Datenpunkte verwendet wurden, aber es gibt einige Probleme mit dieser Ansatz.

Dies ist der Code, den ich verwendet habe, um ein Textfeld zu erstellen, um dem Benutzer mitzuteilen, wie viele Datenpunkte es gibt.

self.axes.text(.98, .98, 'Number of Data Points: {}'.format(len(self.cleanedY)), 
        verticalalignment='top', horizontalalignment='right', 
        transform=self.axes.transAxes, 
        color='black', fontsize=9.5) 
  1. Umfangreiche Eingabe, die der Benutzer müsste gefragt werden. Dazu gehören die Positionskoordinaten, das tatsächliche Textfeld, die Art der Ausrichtung.
  2. Die einzige Möglichkeit, wie ich diese Informationen sammeln könnte, wäre ein Qdialog-Fenster zu erstellen, das alle diese Eingaben anfordert, was zu umständlich wäre.
  3. Der Benutzer hat nicht viel Kontrolle über die Möglichkeit, die Textbox frei zu positionieren und müsste genaue Dezimalstellen kennen, um das Textfeld auf der Figur zu positionieren.

Dies ist unglaublich ineffizient und unflexibel. Ich möchte eine Möglichkeit für den Benutzer, diese Notizen leicht in der Diagrammfigur zu erstellen.

TLDR: Gibt es eine Möglichkeit, eine einfache Drag-and-Textbox-Option auf einer Plot-Figur zu entwickeln?

+0

Die Frage selbst viel zu breit ist. Erklären Sie klar, was Sie zu erreichen versuchen und was Sie daran hindert, es zu erreichen. Es könnte auch ein Duplikat von [dieser Frage] sein (https://stackoverflow.com/questions/43973758/how-do-i-make-matplotlib-open-a-box-for-user-comments). – ImportanceOfBeingErnest

+0

Dort tkinter benutze ich pyqt und sie machen die genaue Methode, die ich versuche zu vermeiden. Verwenden eines separaten Popup-Fensters, um den Benutzer zur Eingabe aufzufordern. Stattdessen möchte ich, dass der Benutzer in der Lage ist, mit der linken Maustaste zu klicken und ein Textfeld ähnlich wie Microsoft Word zu ziehen. –

+0

Soll der Benutzer etwas eingeben oder nicht? Scheint die Frage nicht nur zu breit, sondern auch unklar. – ImportanceOfBeingErnest

Antwort

Verwandte Themen