Matplotlib die letzten nicht die ersten

Django, Flask, Bottle, WSGI, CGI…
Antworten
telegraph
User
Beiträge: 31
Registriert: Mittwoch 6. November 2013, 10:59

Donnerstag 12. April 2018, 16:55

Hallo zusammen,

kann mir jemand einen tip geben, wie ich mit matplotlib die letzten daten plotte und nicht die ersten.

Code: Alles auswählen

@app.route('/welcome_test', methods=['POST', 'GET'])
def welcome_test():
    response = b'0'
    aktueller_wert = ""
    letzes_datum = ""
    if 'username' in session:
        if request.method == 'POST':

            #Form abfrage
            temp_values_of_interest = request.form.get('Plot_Daten')
            #Safety first, um keine request direct in die Datenbank zu übernehmen
            values_of_interest = where_is(temp_values_of_interest)

            # Datenbank abfrage
            conn = sqlite3.connect('C:\\Users\\teleg\\OneDrive\\Desktop\\Easy_projekt\\CSV_to_SQLite\\DB_egx300.db')

            c = conn.cursor()
            c.execute('SELECT {0}, Ortszeitstempel FROM egx300 ORDER BY Ortszeitstempel ASC'.format(values_of_interest))

            #Daten aufbereiten
            dates = []
            values = []
            for row in c.fetchall():
                dates.append(row[1])
                values.append(row[0])


            print(dates, values)
            aktueller_wert = values[-1]


            letzes_datum = dates[-1]
            print(letzes_datum)
            xscale = len(dates) - 4
            xscale1 = len(dates)
            print(len(dates), xscale)


            # Erzeuge eine neu Figur mit entsprechenden Parameter
            plt.figure(figsize=(9, 4), dpi=200)
            plt.plot(dates, values)

            #plt.xlim(xscale, len(dates))
            plt.title(values_of_interest)
            plt.xlabel("Datum")
            plt.ylabel("Werte Bereich")
            #plt.autoscale()
            #plt.tick_params(pad=2)
            #plt.xlim(xscale, len(dates))#die letzten 4 Daten Work
            #plt.xlim(0, len(dates))
            #plt.xticks([10, 100, 449])
            frequency = 200
            plt.xticks(dates[::frequency])
            #plt.xlim(min=0)
            #plt.gca().set_xlim(left=0)
            plt.grid(True)
            #plt.xticks((5 ,len(dates)))
            #plt.show()
            #plt.locator_params(tight=True, nbins=4)

            # Plot encode
            img = io.BytesIO()
            img.seek(0)
            plt.savefig(img, format='png', transparent=True)
            #Clear plt
            #plt.clf()
            #plt.cla()
            #plt.close()

            response = base64.b64encode(img.getvalue())




        return render_template('welcome_test.html', username=session['username'], response=response.decode('utf8'), aktueller_wert=aktueller_wert, letzes_datum=letzes_datum)
    else:
        return redirect(url_for('login'))
Antworten