Hallo zusammen,
ich habe dank eines Raspberry Python entdeckt.
Nun habe ich eine kleine Applikation geschrieben.
Als Neuling dieser Sprache bereitet einem dabei manches Kopfzerbrechen (warum geht das jetzt so ?).
Ich nutze unter anderem die Matplotlib, ein wie ich mittlerweile festgestellt habe, riesiges Werkzeug mit einer Vielzahl an Funktionalitäten.
Natürlich auch mit einer Unmenge an Dokumentation (2600 Seiten Umfang allein für die "offizielle" Dokumentation).
Das ist alles sehr umfangreich und es bedarf noch einiger Arbeit von mir, um das zu sichten.
Mein kleines Projekt protokolliert Datum und Temperatur und gibt die gesamte Datenmenge als Diagramm aus.
Soweit sind meine ersten Versuche bereits erfolgreich gewesen.
Nun würde ich das Diagramm gerne verbessern.
Ich würde gerne auf ein (weiteres Diagramm) nur einen Teil der Daten (z.B. die letzten 24 Stunden) ausgeben.
Im der Doku habe ich eine Funktion set_data_interval(vmin, vmax, ignore=False) gefunden. allerdings keine Beispiele dazu.
Wie muss ich diese denn mit Datums- und Zeitwerten aufrufen?
Danke für eure Hilfe
Matplotlib
Hallo pythondiger,
wie sieht denn dein Code bisher aus?
Wenn er schon etwas länger geworden ist bietet sich http://www.python-forum.de/pastebin.php an.
Gruß Sebastian
wie sieht denn dein Code bisher aus?
Wenn er schon etwas länger geworden ist bietet sich http://www.python-forum.de/pastebin.php an.
Gruß Sebastian
-
- User
- Beiträge: 12
- Registriert: Freitag 26. Dezember 2014, 15:45
Hallo Sebastian,
hier ist der Ausschnitt zum Erzeugen der Diagramme
Funktioniert auch bestens.
Ein erster Versuch danach in einem weiteren Diagramm die Ausgabe einzugrenzen, war bislang erfolglos.
Hier der Ausschnitt
Starte ich das Programm, so erhalte ich keinerlei Ausgaben mehr (ich habe einige Testausgaben im Programm) und leider auch keine Diagramme.
Aus der Dokumentation von Matplotlib werde ich allerdings auch nicht ganz schlau.
Da finde ich
Oder habe ich ein Problem mit der Zeitangabe?
Edit: Cut&Paste-Fehler korrigiert
hier ist der Ausschnitt zum Erzeugen der Diagramme
Code: Alles auswählen
# Jetzt noch die Graphik erzeugen ...
my_plot = plot.figure ()
plot.title ("Wetterdaten")
plot.ylabel ("Temperatur (Grad C)")
plot.xlabel ("Zeit")
plot.setp (plot.gca().get_xticklabels(), rotation=35)
plot.grid (True)
plot.plot(history["x"], history["y"], color='#4884FF', linewidth=2, label = "Temperatur")
plot.savefig(plot_file_temp1, format="png", dpi = 100)
Ein erster Versuch danach in einem weiteren Diagramm die Ausgabe einzugrenzen, war bislang erfolglos.
Hier der Ausschnitt
Code: Alles auswählen
plot.clf
plot.title ("Zweiter Test")
plot.ylabel ("Temp")
plot.xlabel ("Datum")
plot.axis.XAxis.set_data_interval (datetime.now()-86400, datetime.now())
plot.plot (history["x"], history["y"])
plot.savefig (plot_file_hum, format="png")
Aus der Dokumentation von Matplotlib werde ich allerdings auch nicht ganz schlau.
Da finde ich
Spreche ich die x-Achse richtig an?class matplotlib.axis.XAxis(axes, pickradius=15)
Bases: matplotlib.axis.Axis
Init the axis with the parent Axes instance
[...]
set_data_interval(vmin, vmax, ignore=False)
set the axis data limits
Oder habe ich ein Problem mit der Zeitangabe?
Edit: Cut&Paste-Fehler korrigiert
matplotlib.pyplot.xlim ist die Funktion, die Du brauchst.
Habe ich dich richtig verstanden?:
Du möchtest gerne 2 Plots auf einer matplotlib Zeichenfläche darstellen.
--> http://matplotlib.org/examples/pylab_ex ... _demo.html
Einer der beiden Plots soll den gesamten Wertebereich anzeigen, der Andere nur einen Ausschnitt.
--> http://stackoverflow.com/a/18812607
Du möchtest gerne 2 Plots auf einer matplotlib Zeichenfläche darstellen.
--> http://matplotlib.org/examples/pylab_ex ... _demo.html
Einer der beiden Plots soll den gesamten Wertebereich anzeigen, der Andere nur einen Ausschnitt.
--> http://stackoverflow.com/a/18812607
Code: Alles auswählen
ax.set_xlim([0.0,10.0])
-
- User
- Beiträge: 12
- Registriert: Freitag 26. Dezember 2014, 15:45
Danke.MagBen hat geschrieben:matplotlib.pyplot.xlim ist die Funktion, die Du brauchst.
Das ist die Lösung.
Code: Alles auswählen
plot.clf
plot.title ("Zweiter Test")
plot.ylabel ("Temp")
plot.xlabel ("Datum")
xmin, xmax = plot.xlim()
plot.xlim (xmax-1, xmax)
plot.plot (history["x"], history["y"])
plot.savefig (plot_file_hum, format="png")