散景:在循环中生成图形,输出图形的文件大小不断增加

时间:2016-05-18 04:17:36

标签: python pandas graph bokeh

我正在使用散景来循环绘制100个图形文件。

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

我注意到的是每个图形文件的大小都超过了之前的图形文件(请查看截图1)。

如果重新生成所有100个图形,则文件大小与上一次迭代不同(屏幕截图2)。

我还注意到一件奇怪的事情是,如果我重新启动我的Jupyter笔记本的内核,那么文件大小将重置为最少(屏幕截图3),如果我重复再生所有100个文件,它们会继续增加。

生成这些图表的样本数总是相同的,为什么文件大小不同?我忘了做某事,比如关闭档案?任何帮助!

Screenshot 1 Screenshot 2 Screenshot 3

2 个答案:

答案 0 :(得分:2)

从Bokeh 0.11.1开始,有时需要使用reset_output函数明确清除输出:

from bokeh.plotting import reset_output

每次迭代:

reset_output()

答案 1 :(得分:0)

第一:

from bokeh.io import curdoc

然后在具有输出文件的绘图块之前,放入:

curdoc.clear()

这将清除您之前的所有图表。我愿意打赌,如果您在第一个文件之后查看任何文件,就会有多个情节。当我刚开始接触Bokeh时,我花了3个小时的研究才能弄清这一点!