Django集成Echarts与Pyecharts实现数据可视化详解

宋时安
宋时安
发布时间:2026-10-14| 5人浏览过
原创

本文详细讲解在Django Web开发中集成Echarts和Pyecharts两种主流可视化方案的具体流程。通过对比分析,分别演示了基于Ajax的Echarts后端数据交互方式,以及利用Pyecharts封装简化渲染步骤的方法,帮助开发者快速实现柱状图等常见图表的展示与复杂场景拓展。

1. 前言

大家好,我是安果!

在进行Django Web开发时,经常需要展示图表以丰富网页的数据呈现效果。

常见的解决方案包括Highcharts、Matplotlib、Echarts和Pyecharts,其中后两种方案在实际应用中使用频率更高。

本文将重点探讨Django结合Echarts和Pyecharts实现图表可视化的具体操作流程。

2. Echarts

Echarts是百度开源的一款优秀的可视化框架,支持展示各类复杂类型的图表。

下面以展示一个简单的柱状图为例,介绍Django集成Echarts的具体步骤。

首先,在对应App的views.py文件中编写视图函数。

当请求方法为POST时,定义柱状图所需的数据值,并通过JsonResponse返回这些数据。


from django.http import JsonResponse
from django.shortcuts import render


def index_view(request):
    if request.method == "POST":

        # 柱状图的数据
        datas = [5, 20, 36, 10, 10, 20]

        # 返回数据
        return JsonResponse({'bar_datas': datas})
    else:
        return render(request, 'index.html', )

在HTML模板文件中,需要导入Echarts的相关依赖库。

注意:可以使用本地JS文件或CDN加速服务来加载资源。


{#导入js和echarts依赖#}
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.2/echarts.common.js"></script>

接着,重写window.onload函数,发送一个Ajax请求至后端,获取数据并利用Echarts将结果渲染到图表容器中。


​<script>
    // 柱状图
    function show_bar(data) {

        //控件
        var bar_widget = echarts.init(document.getElementById('bar_div'));

        //设置option
        option = {
            title: {
                text: '简单的柱状图'
            },
            tooltip: {},
            legend: {
                data: ['销量']
            },
            xAxis: {
                type: 'category',
                data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
            },
            yAxis: {
                type: 'value'
            },
            series: [{
                data: data,
                type: 'bar'
            }]
        };

        bar_widget.setOption(option)
    }
    //显示即加载调用
    window.onload = function () {
        //发送post请求,地址为index(Jquery)
        $.ajax({
            url: "/",
            type: "POST",
            data: {},
            success: function (data) {
                // 柱状图
                show_bar(data['bar_datas']);

                //后端返回的结果
                console.log(data)
            }
        })
    }
</script>

最后,配置路由URL并运行项目。


from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('',include('index.urls')),
​    path('admin/', admin.site.urls),
]

运行后,首页成功展示了一个简单的柱状图。

如需展示更复杂的图表类型,可参考官方文档。

https://echarts.apache.org/examples/zh/index.html

3. Pyecharts

Pyecharts是一款基于Python对Echarts进行二次封装的开源框架。

与直接集成Echarts相比,Django集成Pyecharts的过程更为快捷和简便。

在Django中集成Pyecharts仅需完成以下4个步骤。

3-1 安装依赖


# 安装依赖
pip(3) install pyecharts

3-2 拷贝pyecharts的模板文件到项目下

将虚拟环境中pyecharts的模板文件拷贝至项目的模板文件夹中。

例如,本机路径如下:

/Users/xingag/Envs/xh_log/lib/python3.7/site-packages/pyecharts/render/templates/

3-3 编写视图函数,渲染图表

在视图文件中,使用pyecharts库内置的Bar类创建一个柱状图。


# Create your views here.
from django.http import HttpResponse
from jinja2 import Environment, FileSystemLoader
from pyecharts.globals import CurrentConfig

CurrentConfig.GLOBAL_ENV = Environment(loader=FileSystemLoader("./index/templates"))

from pyecharts import options as opts
from pyecharts.charts import Bar


# http://127.0.0.1:8000/demo/
def index(request):
    c = (
        Bar()
            .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
            .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
            .add_yaxis("商家B", [15, 25, 16, 55, 48, 8])
            .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
    )
    return HttpResponse(c.render_embed())

3-4 运行项目

运行项目后,生成的柱状图效果如下:

这仅是最简单的使用实例,更多复杂图表及前后端分离、动态更新的案例,

可参考官网:

https://pyecharts.org/#/zh-cn/web_django?id=django-前后端分离

4. 最后

本文介绍了Django快速集成Echarts和Pyecharts的基本步骤。

在实际项目中,针对复杂图表、前后端分离及数据更新等需求,可参考官网文档进行拓展。

源码地址:https://github.com/xingag/python_web

以上就是Django展示可视化图表的多种方式的详细内容,更多关于Django 可视化图表的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。