在Django中显示图表/图形

33

我正在用Django制作一个报告应用程序,其中涉及大量的图表和图形。

有没有一种简单的图形库/模块可以实现以下工作流程:

  1. 执行SQL查询
  2. 将返回的数据解析到图形库/模块中
  3. 图形库/模块将数据转换为图表/图形,我可以轻松地将其输出到Django模板中。

我已经花了最近几天的时间在Matplotlib和Django上进行尝试。看起来只有几种方法可以在Django中渲染图形:

  1. 使用两个视图,一个用于渲染PNG,另一个用于输出HTML,其中img src指向第一个视图。链接
  2. 数据URI
  3. 将图像写入文件,然后调用视图。

有没有更简单的方法可以做到这一点?

谢谢

4个回答

14

您可能想要查看

Django Graphos

它支持许多后端,并与Django orm集成良好,但也可以使用其他数据源。

支持的图表类型

Flot
  • 折线图
  • 柱状图
  • 点状图
Google Charts
  • 折线图
  • 柱状图
  • 条形图
  • 蜡烛图
  • 饼图
YUI
  • 折线图
  • 柱状图
  • 条形图
  • 饼图
Morris.js
  • 折线图
  • 柱状图
  • 环形图

[声明:我是作者之一]


11
GitHub 上的 Graphos 出现了问题。还有其他建议吗? - Scott Skiles

9

此答案的编辑队列已满。 pycha现在位于https://pypi.org/project/pycha/。Highcharts是商业软件,而jqplot自2016年以来就没有得到维护。 :( - deltaray
Pycha自2019年以来似乎没有更新。 - dfrankow

8
看一下这些众所周知的库,它们可以帮助我们绘制图表,而无需编写JS代码。
以下是一些库的详细信息:
- Chartit:[https://github.com/chartit/django-chartit](https://github.com/chartit/django-chartit)(最近更新于2018年) - ChartJs:[https://github.com/novafloss/django-chartjs](https://github.com/novafloss/django-chartjs)(最近更新于2022年) - Django charts:[http://www.fusioncharts.com/django-charts/](http://www.fusioncharts.com/django-charts/)(无最近更新日期) - Django nvd3:[https://github.com/areski/django-nvd3](https://github.com/areski/django-nvd3)(最近更新于2020年) - Django graphos:[https://github.com/agiliq/django-graphos](https://github.com/agiliq/django-graphos)(最近更新于2017年) - Django Gcharts:[https://github.com/rhblind/django-gcharts](https://github.com/rhblind/django-gcharts)(已归档,最后更新于2015年)

3

显示图表的所有Django模块都需要大量的配置和设置。不过我找到了一个只有一个依赖项的解决方案:plotly。

您可以在Python中创建所有的图表,并将它们导出为HTML格式,以便包含在Django输出中。

请参阅这篇文章,其中有一个示例:http://www.codingwithricky.com/2019/08/28/easy-django-plotly/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接