2016-05-18 6 views
0

Ich benutze Bokeh, um 100 Grafikdateien in einer Schleife zu plotten.Bokeh: Erstellen von Grafiken in einer Schleife, die Dateigröße des Ausgabediagramms steigt weiter

for k in files: 
    # Read the log file data into a df. 
    log_file_name = str(k) + ".csv" 
    logged_data = pd.read_csv("csv/"+log_file_name, parse_dates=["dttm_utc"], date_parser=dateparse) 

    new_logged_data = logged_data.set_index("dttm_utc") 
    mean_data = new_logged_data.resample("3D", how=[np.mean]) 

    # Extract the energy values and time stamps out into two ds. 
    energy_data = mean_data["value"]["mean"] 
    time_data = mean_data.index 

    # Plotting 
    output_file("csv/plots/" + log_file_name + ".html", title="Energy Consumption") 

    p = figure(width=1600, height=350, x_axis_type="datetime") 
    p.line(time_data, energy_data, color='navy', legend='energy') 
    #p.circle(time_data, energy_data, size=2, color='navy', alpha=0.2, legend='energy') 

    p.title = log_file_name + " INDUSTRY: " + i + " SUB-INDUSTRY: " + j) 
    p.title_text_font_size = '10pt' 
    p.legend.location = "top_left" 
    p.grid.grid_line_alpha=0 
    p.xaxis.axis_label = 'Time' 
    p.yaxis.axis_label = 'Energy (kWh)' 
    p.ygrid.band_fill_color="olive" 
    p.ygrid.band_fill_alpha = 0.1 
    save(p) 

    count += 1 
    print str(count) + " " + log_file_name 

Was ich zu bemerken, dass die Größe der einzelnen Graphen-Datei mehr ist, als es vorherigen ist (Schauen Sie bitte auf den Screenshot 1).

Wenn alle 100 Grafiken neu erstellt werden, sind die Dateigrößen nicht identisch mit der vorherigen Iteration (Screenshot 2).

Eine seltsame Sache, die ich auch bemerkt habe, ist, dass, wenn ich den Kernel meines Jupyter Notebooks neu starte, die Dateigrößen auf den geringsten zurückgesetzt werden (Screenshot 3), noch einmal, wenn ich die Regeneration aller 100 Dateien wiederhole.

Die Anzahl der Stichproben zum Erzeugen dieser Graphen ist immer gleich, warum unterscheiden sich die Dateigrößen? Vergesse ich, etwas zu tun, zum Beispiel die Datei zu schließen? Irgendeine Hilfe!

Screenshot 1 Screenshot 2 Screenshot 3

Antwort

3

Ab Bokeh 0.11.1 ist es manchmal notwendig, um explizit die Ausgabe mit der reset_output Funktion zu löschen:

from bokeh.plotting import reset_output 

Die in jeder Iteration:

reset_output() 
+0

Willkommen zu Stackoverflow. Dies ist keine propoer Antwort, da es unklar ist, was Sie vorschlagen. Bitte [schreiben Sie eine gute Antwort] (http://stackoverflow.com/help/how-to-answer) und erarbeiten – DomTomCat

Verwandte Themen