【问题标题】:Pandas Dataframe and Seaborn graph interaction with HTML webpagePandas Dataframe 和 Seaborn 图形与 HTML 网页的交互
【发布时间】:2018-05-28 17:01:40
【问题描述】:

我正在尝试以 HTML 格式呈现 seaboard 图表并使其与用户交互。基本上,它是一个 regplot,默认情况下将显示 SQL 查询中提取的所有数据。 然后,用户可以从下拉列表中输入某个项目,我想重新运行查询并绘制相同的图表,但仅针对所选项目。

我的问题是初始查询(显示全部)有效,但是在选择新项目时,新数据会添加到旧数据中。如果我选择了一个附加项目,这也会被添加......不会单独显示。见附图。

我的理解是 PandasDataframe 不会在查询之间“丢弃”数据(只有在我重新启动程序时才会重置)。我尝试了各种 Pandas - 内存管理选项,但我无法让它们中的任何一个工作。

感谢您的帮助

代码:

@app.route('/bikeplot1')
def brandstatsinputs():
    plt.ion()
    fig = Figure()
    brandstatsx = request.args.get('Brandstats','')
    try:
        tabledata = DB.brandstats_inputs(brandstatsx)
    except Exception as e:
    print(e)
    tabledata = None

    df=pd.DataFrame(tabledata)

    sns.regplot(x="Bore", y="Stroke", data=df, scatter_kws={'alpha':0.5})

    ### Saving plot to disk in png format
    plt.savefig('Static/square_plot.png')

    ### Rendering Plot in Html
    figfile = io.BytesIO()
    plt.savefig(figfile, format='png')
    figfile.seek(0)
    figdata_png = base64.b64encode(figfile.getvalue())
    result = str(figdata_png)[2:-1]

    return render_template('airline.html', result=result, tabledata=tabledata)

【问题讨论】:

    标签: python pandas seaborn


    【解决方案1】:

    您一定已经解决了这个问题,但无论如何它都在这里: 我认为您必须在从函数返回之前关闭该图。像这样:

    ...
    
    python code
    
    ...
    
    plt.close()
    return ...
    

    如果这不起作用,请尝试plt.close(fig)

    注意:这未经测试

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 1970-01-01
      • 2016-11-03
      • 2017-09-09
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      相关资源
      最近更新 更多