尝试通过pygal创建多个图,只需一个函数调用,仅获取一个xml字符串

如何解决尝试通过pygal创建多个图,只需一个函数调用,仅获取一个xml字符串

因此,我既不是资深人士,也不是中级人士,而是也不是菜鸟。我不知道如何在这里正确询问,所以我会尽力而为。

目标

我的目标是调用一个函数graph_horizo​​ntal_dynamic(dataset)。数据集是列出的字典,包含更多列表。我不知道那有多有效,也可能会让我知道。看起来像这样:

dataset = []
dataset.append({"width":200,"height":200,"spacing":0,"margin":0,\
    "title":"Corona","labels":{1,2,3,4,5},\
    "info":"Corona Cases","record":{1,5}})

从理论上讲,它将把从查询中检索到的数据附加到数据库中,但是可以坚持使用硬编码,以便于理解。该函数应基于数据集返回一个(idk怎么称呼它,它是一个对象吗?)图,其中包含所有图,以后我可以在flask应用程序中解释这些图。

我如何计划其功能

因此,用户应该能够定义,好吧,我想显示6个图形,或者也许要显示8个图形以及哪些数据。数据来自异步脚本到sqlite数据库中。所以我认为我可以按数据集长度=图形数量进行操作。明智的做法是使用用户定义的值来避免错误

到目前为止,我有什么

routes.py

from utils import graph_horizontal_dynamic

dataset = []
dataset.append({"width":200,5}})
graphs = graph_horizontal_dynamic(dataset)

return render_template('stackoverflow-is-awesome.html',graphs=graphs)

utils.py

from flask import flash
import pygal
from pygal import HorizontalStackedBar

def graph_horizontal_flask_dynamic(dataset):
    graphs = []
    try:
        for data in dataset:
            bar_chart = pygal.HorizontalStackedBar(width=data["width"],\
                    height=data["height"],spacing=data["spacing"],\
                    margin=data["margin"])
            bar_chart.title = data["title"]
            bar_chart.x_labels = data["labels"]
            bar_chart.add(data["info"],data["record"])
            graphs.append(bar_chart.render(is_unicode=True))
            dataset.remove(data)
        return graphs
    except Exception as e:
        return flash(str(e),"warning")

stackoverflow_is_awesome.html

<div class="row row-cols-1 row-cols-md-5">
    {% for graph in graphs %}
        <div class="col mb-4">
            <div class="card bg-dark" style="height:200px">
                <div class="card-body">
                {{graph|safe}}
                </div>
            </div>
        </div>
    {% endfor %}
</div>

我在烧瓶中显示的所有内容只是正确的xml字符串

<?xml version='1.0' encoding='utf-8'?> <svg xmlns:xlink="http://www.w3.org/1999/xlink" class="pygal-chart" id="chart-94d8ea54-135f-4c95-bf36-c9a5be4f901f" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><!--Generated with pygal 2.4.0 (etree) ©Kozea 2012-2016 ...

what it looks like in the browser

我可以稍微交换一些代码获取指向内存中对象的指针,而不是浏览器卡中的xmlstring。

<pygal.graph.horizontalstackedbar.HorizontalStackedBar object at 0x000002A8B44591C8>
...

问题

  • 什么是可以改进的,也许还有另一种处理数据的方法
  • 如何继续正确绘制图形?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?