Python结合pyecharts实现双动态曲线图表的完整教程

半杯拿铁
半杯拿铁
发布时间:2026-10-15| 3人浏览过
原创

本文详细介绍如何使用Python的pyecharts库绘制双动态曲线,涵盖从后端数据生成到前端实时更新的完整流程。针对官方示例中存在的代码问题进行了修正,通过Django后端接口提供初始数据与动态更新数据,结合JavaScript AJAX请求实现图表的实时渲染与刷新,帮助开发者快速掌握动态可视化的核心实现方法。

教程概述与背景

整体实现思路与官方示例类似,但官方示例中部分代码存在错误导致无法直接运行,且需要开发者具备JSON数据处理以及前后端交互的相关知识,耗费一定学习成本。为此,本文提供经过修正和优化的完整方案供参考。

后端视图实现

以下是后端视图(views)的具体实现代码。

def line_base() -> Line:
    line = (
        Line()
        .add_xaxis(list(range(10)))
        .add_yaxis(series_name="专注度", y_axis=[randrange(0, 100) for _ in range(10)],areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
        .add_yaxis(series_name="放松度", y_axis=[randrange(0, 100) for _ in range(10)],areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
        .set_series_opts()
        .set_global_opts(
            title_opts=opts.TitleOpts(title="专注度和放松度"),
            xaxis_opts=opts.AxisOpts(type_="value"),
            yaxis_opts=opts.AxisOpts(type_="value"),
        )
 
        .dump_options_with_quotes()
    )
    return line
 
class ChartView(APIView):
    def get(self, request, *args, **kwargs):
        return JsonResponse(json.loads(line_base()))
 
cnt = 9
cnt1 = 9
class ChartUpdateView(APIView):
    def get(self, request, *args, **kwargs):
        global cnt,cnt1
        cnt = cnt + 1
        cnt1 = cnt1 + 1
        return JsonResponse({"name": cnt,"value": randrange(0, 100),"name1":cnt1,"value1":randrange(0, 100)})

URL路由配置

接下来是URL路由配置界面,用于定义访问路径。

    path('index/',views.Index),
    path('line/', views.ChartView.as_view()),
    path('lineUpdate/', views.ChartUpdateView.as_view()),

前端HTML结构

前端HTML页面代码,负责初始化图表容器及加载必要的脚本。

function fetchData() {
            $.ajax({
                type: "GET",
                url: "http://127.0.0.1:8000/line",
                dataType: "json",
                success: function (result) {
                    var options = result.data;
                    line.setOption(options);
                    old_data = line.getOption().series[0].data;
                    old_data1 = line.getOption().series[1].data;
 
                }
            });
        }
 
function getDynamicData() {
            $.ajax({
                type: "GET",
                url: "http://127.0.0.1:8000/lineUpdate",
                dataType: 'json',
                success: function (result) {
                    var options = result.data;
                    old_data.push([options.name, options.value]);
                    old_data1.push([options.name1, options.value1]);
                    line.setOption({
                        series: [{
                            data: old_data
                        },
                        {
                           data:old_data1
                        }
                        ]
                    });
 
                }
            });
        }

效果展示与风格调整

最终运行效果如图所示,此处对Line图表的视觉风格进行了适当调整,使其更符合展示需求。

总结

至此,关于Python结合pyecharts绘制双动态曲线的教程已介绍完毕。如需了解更多相关Python与pyecharts双动态曲线的内容,建议搜索本站历史文章或继续浏览后续相关文章。感谢大家的支持!

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

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 算法库。