gpt4 book ai didi

python - 如何使用 mpld3 和 flask 将 matplotlib 图放入 html 容器中

转载 作者:太空狗 更新时间:2023-10-30 01:14:59 30 4
gpt4 key购买 nike

我正在尝试使用 mpld3-flask 示例 ( https://github.com/nipunreddevil/mpld3-flask ) 作为模板来实现特定行为。我想要的是将标题栏上的链接添加到不同的地 block ,而不是使用单选按钮查询表单。

现在,上面的示例代码在 templates/index.html 中创建了一个容器,然后在用户通过单击“查看绘图”按钮提交查询时用绘图填充它。据我所知,这发生在这段代码中,在 index.html 中:

$("#query").click(function() {  

$("#loading-div-background").show();
$("#container").hide();
var plot_type = $('input:radio[name=plot_type]:checked').val();
var qu = {"plot_type":plot_type}
$.ajax({
type: "POST",
async:true,
contentType: "application/json; charset=utf-8",
url: "/query",
data: JSON.stringify(qu),
success: function (data) {
var graph = $("#container");
graph.html(data);
$("#loading-div-background").hide();
$("#container").show();
},
dataType: "html"
});
});

我想要的是添加到当前包含“Home”的标题栏,并在不同的页面中显示每个示例图。我会路由到不同的链接,然后用绘图数据填充模板 html 代码,而不需要用户查询。

我是 html 的新手,目前对 JavaScript 基本上一无所知。我的感觉是有一些相对简单的方法可以使用 flask + jinja2 来做到这一点,但我还没弄明白。

我遇到了一些由于组合所有这些语言而导致的命名空间不明确的问题。在我自己的 python 编程中,我通常对 namespace 非常严格(即我从来没有使用过“from ____ import *”)所以这让我有点抓狂。

最佳答案

经过一段时间的工作,我找到了一个似乎可行的解决方案,并实现了我想要的行为。请注意,我使用的是 twitter bootstrap css 和 javascript 包。

基本上,我制作了一个按钮组:

  <div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary">
<input type="radio" name="options" id="home"> Option 1
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option2"> Option 2
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option3"> Option 3
</label>

然后在我使用的 mpld3-flask 示例的 javascript 中:

$('.btn-primary').on('click', function(){
var qu = {"plot_type":$(this).find('input').attr('id')}
$(this).addClass('active').siblings().removeClass('active');
$.ajax({
type: "POST",
async:true,
contentType: "application/json; charset=utf-8",
url: "/query",
data: JSON.stringify(qu),
success: function (data) {
var graph = $("#container");
graph.html(data);
$("#container").show();
},
dataType: "html"
});
});

现在我有一个单选按钮栏,当前事件的绘图按钮设置为“事件”,只需单击其中一个按钮即可绘制新绘图。

编辑:在学习了更多关于 flask 和 Jinja2 的知识之后,将 mpld3 生成的 html 传递给模板也很容易,但是有一个小问题;看起来像这样

在你的 python 路由函数的返回中:

return render_template('index.html', plot=mpld3_html)

然后在html模板中你可以引用这个html

{{plot|safe}}

希望这对其他人有帮助。

关于python - 如何使用 mpld3 和 flask 将 matplotlib 图放入 html 容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25728442/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com