在Django中显示图表

33 投票
4 回答
77998 浏览
提问于 2025-04-16 15:33

我正在用Django制作一个报告应用,里面有很多图表。

有没有简单的图表库或模块,可以让我按照以下步骤来工作:

  1. 执行我的SQL查询
  2. 把返回的数据传给图表库或模块
  3. 图表库或模块把数据处理成图表,我可以很方便地把它输出到Django模板中。

我这几天一直在尝试使用Matplotlib和Django。看起来在Django中渲染图表的方法不多。

  1. 使用两个视图,一个用来生成PNG图像,另一个用来输出HTML,img的src指向第一个视图。链接
  2. 数据URI
  3. 把图像写入文件,然后通过视图调用它

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

谢谢

4 个回答

8

看看这些大家都知道的库,它们可以帮助你绘制图表,而不需要写任何JavaScript代码。

名称 链接 最后更新
Chartit https://github.com/chartit/django-chartit 2018
ChartJs https://github.com/novafloss/django-chartjs 2022
Django charts http://www.fusioncharts.com/django-charts/
Django nvd3 https://github.com/areski/django-nvd3 2020
Django graphos https://github.com/agiliq/django-graphos 2017
Django Gcharts https://github.com/rhblind/django-gcharts 已归档 2015
9

一个更轻量的选择是 pycha

你可以看看这篇博客,了解一下: 关于如何在你的django网站上使用Python Charts生成漂亮的SVG图表的简短文章

另一个选择是在你的模板中加入 google charts

如果你可以通过js在模板中渲染图表,这里有两个比较受欢迎的库:

14

你可能想看看

Django Graphos

这个工具支持很多不同的数据后端,并且能很好地与Django的数据库操作工具(orm)结合使用,不过它也可以和其他数据源一起工作。

支持的图表类型

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

[声明:我是这个项目的作者之一]

撰写回答