如何在Django中优雅的使用pyecharts设计可视化BI系统(多图表)

《数据分析-Echarts》Python + Django + echarts图表展示 Python + Django + echarts图表展示 项目打包文件 一、准备工作 ## 1.python环境安装 ## 2.python开发工具PyCharm安装 二、创建Django项目 三、Terminal 四、安装Django模块 在terminal下输入命令安装: 可以先使用pip list查看已安装的模块 PS D:\date\PyCharm\djangoProject> pip list 继续使用pip install django命令安装django模块 PS D:\dat 阅读详情

这两天琢磨了一下pyecharts这个库,自己总结了一些内容,具体如下:
大多数人在做用python库做数据分析的时候,都在用jupyter,用这个工具是没有错,而且非常方便就可以即时的显示数据,这个确实优秀。但是如果有这样的一个需求:是用Django做个数据分析类的可视化大屏BI系统,那还会像jupyter那样两人愉快吗?
我在查看了很多资料,有在Django中使用pandas/numpy/matplotlib来做这件事情的,但是我自己本身也不太懂那些繁琐的程序,我还需要继续提升“键魂”吧。
首先我查看了pyecharts的中文文档:http://pyecharts.org/#/zh-cn/intro
在看文档的时候,我看到了令人欣喜的的地方:可轻松集成至 Flask,Django 等主流 Web 框架
然后我迫不及待的查看类目里面的内容。
我先模仿者敲了前两个类别的代码:在模板中渲染和前后端分离这两个类目,后面两个动态的没有过多的研究,因为在看文档的时候,好多参数都记不住什么意思,只能前后来回的翻看。当我把两个小类目实现之后,我开始思考当前的需求:在一个页面中同时渲染出多个图表,我看到的这两个小类别都是只渲染了一个图表,于是我又疯狂的搜集资料,最后还是回到了文档里面来。
于是让人欣喜的地方来了:组合图表,目前只有四种组合图表的样式,而我当前需要的是平铺在页面上的,所以我着重的看前两个小类目,首先我模仿着第一种Grid在Django中实现了上下表,左右表,多Y轴表(我并不需要K线,就没有研究),做完这些之后,我就想着如何才能把上面这几种表综合起来呢?尽管我做了很多种方式的尝试,但还是不行,好像是覆盖掉了还是怎么回事,反正是乱套了,没有按照平铺的方式来显示图表,于是我又研究Page这个类,希望这个类能实现我想要的功能吧。在尝试了几次之后,发现同样的方法在页面上什么都渲染不出来,我不清楚到底是哪里出了问题,于是我去查看Page的源码。我仔细查看之后,发现了一些原因:

"""
`Page` A container object to present multiple charts vertically in a single page
"""
# 大概意思就是在一个页面显示多种图表吧
 def render(
     self,
     path: str = "render.html",
     template_name: str = "simple_page.html",
     env: types.Optional[Environment] = None,
     **kwargs,
 ) -> str:
     self._prepare_render()
     return engine.render(self, path, template_name, env, **kwargs)
# 下面还有两种render,有源码我就不复制了

大概这种情况就是:它只能渲染到指定的页面上面吧,那这不就是和Django没什么关系了吗,那我要怎么传参之类的呢?于是我只能放弃这个类
兜兜转转一圈,最后又回到了Grid类,

"""
    `Gird` Drawing grid in rectangular coordinate. In a single grid,
    at most two X and Y axes each is allowed. Line chart, bar chart,
    and scatter chart (bubble chart) can be drawn in grid.
"""

但是表格类显示的图标又非常的有限,很多精美的图标又无法显示,鱼和熊掌不可兼得啊,总之能显示普通的多图表也行啊,于是我又开始查看文档里面的各种参数,反反复复不断的尝试,终于多图表出现了:
在这里插入图片描述
这完全是在Django中使用pyecharts来实现的,数据都是原生的模拟数据,至于如何灵活的使用pandas.numpy来给定参数,我觉得是传过来列表就好了,因为Faker.values()就是一个列表,可以用pandas的tolist功能吧,具体我还没有去实践过,还有如何在图标中添加十字虚线的提示等,只自学了两天,很多参数还得慢慢领悟。下面附上代码,让迷茫的小伙伴重新找到方向。

def grid_vertical() -> Grid:    # 垂直网格
    bar = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Grid-Bar"),
            legend_opts=opts.LegendOpts(pos_left="20%")
        )
    )
    line = (
        Line()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%"),
            legend_opts=opts.LegendOpts(pos_top="48%", pos_left="20%")
        )
    )

    scatter = (
        Scatter()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Grid-Scatter", pos_right="5%"),
            legend_opts=opts.LegendOpts(pos_right="25%"),
        )
    )
    line2 = (
        Line()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Grid-Line2", pos_right="5%", pos_top="48%"),
            legend_opts=opts.LegendOpts(pos_right="25%", pos_top="48%"),
        )
    )
    grid = (
        Grid()      # 上下图和左右图
        .add(chart=bar, grid_opts=opts.GridOpts(pos_bottom="60%", width="38%"))
        .add(chart=line, grid_opts=opts.GridOpts(pos_top="60%", width="38%"))
        .add(chart=scatter, grid_opts=opts.GridOpts(pos_left="55%", pos_bottom="60%"))
        .add(chart=line2, grid_opts=opts.GridOpts(pos_left="55%", pos_top="60%"))
        # 获取全局 options,JSON 格式(JsCode 生成的函数带引号,在前后端分离传输数据时使用)
        .dump_options_with_quotes()     # 官方解释:保留 JS 方法引号
    )
    return grid

这里只附上部分代码,想要源码的可加我微信:gcw-410,昵称:浅情人不知,勿忘备注:生而为魔

诚之和:怎么在Django中Pyecharts生成图表 在数据可视化中,我们可以使用一些类似pyecharts来生成图表。但如果我们想在网页中进行数据可视化,还需要Django的支持。那么怎么在Django中Pyecharts生成图表呢?接下来的这篇文章带你了解。 因为pyecharts是支持python的一种可视化,但是想要将其放入网页中,主要有两种方法 (1)在网页中假如iframe,将网页嵌在iframe中(该方法不具体描述) (2)使用json传输到前端,对其进行展示 具体描述第2种方法如下: 假设用pyecharts画一张折线图 def 阅读详情

相关推荐

Python+MySQL+Pyecharts实战:霸王茶姬销量可视化分析项目全流程

数据分析是现代商业决策和产品优化的核心驱动力,其原理在于通过系统性地收集、清洗、处理数据,并借助可视化手段揭示内在规律与趋势,从而赋能业务增长。在技术实现上,Python因其丰富的数据处理库(如Pandas、NumPy)和强大的可视化生态(如Matplotlib、Pyecharts),已成为数据分析领域的首选工具之一,结合MySQL等关系型数据库进行高效的数据存储与查询,构成了从数据到洞察的完整技术栈。这类技术组合的价值在于能够将原始数据转化为直观、可交互的图表,帮助分析人员快速定位问题、发现机会,广泛应用

weixin_30781107的博客 459

Django 配合Echarts绘制图表

在前面我总结了关于DjangoAdmin的使用技巧,利用DjangoAdmin这个后台管理功能,自己定制页面可以完成非常多的功能,下面我们将重点研究主机图形的绘制,展示和报表等功能的具体实现步骤,这里也算是个人的一点点经验。 定制查询图形功能 urls.py from django.contrib import admin from django.urls import path from My...

微软技术分享 1万+

在django中使用pyecharts:模板渲染

文章目录Django 模板渲染Step 0: 新建一个 Django 项目Step 1: 拷贝 pyecharts 模板Step 2: 渲染图表Step 3: 运行项目 Django 模板渲染 Step 0: 新建一个 Django 项目 django-admin startproject pyecharts_django_demo 创建一个应用程序 python manage.py startapp demo 在 pyecharts_django_demo/settings.py 中注册应用程序 #

Cachel Wood的博客 1030

django之 echarts数据可视化

django之 echarts数据可视化

水w的博客 7044

别光看文档了!手把手带你用Habitat-Lab跑通第一个PointNav任务(附完整代码与避坑指南)

本文详细介绍了如何使用Habitat-Lab快速跑通第一个PointNav任务,包括环境配置、依赖安装、数据集下载与路径配置等关键步骤,并提供了完整的代码实现与常见问题排查指南。特别适合刚接触Habitat-Lab的开发者,帮助避开官方Quickstart未提及的坑,快速上手具身AI任务。

weixin_42662293的博客 270

相场断裂模型中的各向异性机制:从裂纹密度到驱动力的数值实现

断裂力学是研究材料在载荷作用下裂纹萌生与扩展规律的基础学科,其核心在于理解材料失效的能量准则与路径选择。传统方法通常预设裂纹路径,而相场断裂模型通过引入连续的相场变量,将裂纹模拟转化为一个能量最小化问题,能够自发预测裂纹的萌生、扩展与分叉,在工程失效分析中具有重要价值。当材料具有显著的方向依赖性时,如单晶、复合材料或轧制金属板,各向同性假设会失效,此时需引入各向异性机制。该机制的核心在于改造两个关键部分:一是裂纹密度函数,通过引入各向异性张量来定义不同方向上形成裂纹微结构的能量成本;二是临界能量释放率(断裂

weixin_31421613的博客 297

如何快速构建数据可视化应用:pyecharts在Flask与Django中的完整集成指南 [特殊字符]

pyecharts是一个强大的Python数据可视化库,它基于百度开源的ECharts图表库,为Python开发者提供了简洁优雅的API来创建交互式图表。在前100个字内,pyecharts的核心功能关键词包括:Python数据可视化、ECharts图表库、Web框架集成、Flask应用、Django项目。这个强大的库让开发者能够轻松地将精美的数据可视化图表集成到Web应用中,提升用户体验和数据呈

gitblog_01093的博客 1026

从零到一:手把手教你用C# WinForms搭建工控上位机(含Panel控件布局与事件处理详解)

本文详细介绍了如何使用C# WinForms框架从零开始搭建工控上位机系统,重点讲解了Panel控件的布局技巧和事件处理机制。通过实战案例,帮助开发者掌握界面分区规划、动态窗体切换及数据通信等核心功能,适用于工业自动化监控系统的开发。

weixin_30321709的博客 607

Pyecharts完全指南:Python数据可视化的专业利器

Pyecharts是一个基于ECharts的Python数据可视化库,为Python开发者提供了创建交互式、美观图表的强大能力。无论是数据分析师、数据科学家还是Web开发者,pyecharts都能帮助你快速构建专业级的数据可视化应用。通过简洁的API设计和丰富的图表类型,pyecharts让数据可视化变得前所未有的简单高效。 ## 🚀 为什么选择Pyecharts进行数据可视化? 在当今数据

gitblog_00022的博客 332

从零开始:MTK ISP调试中的ImagiqSimulator实战指南

本文详细介绍了MTK ISP调试中ImagiqSimulator的实战应用,从环境准备、参数加载到核心模块调整,提供全面的调试流程指南。重点讲解了DM模块参数优化技巧和常见问题解决方案,帮助工程师高效完成ISP调试工作,提升图像处理质量。

weixin_29168813的博客 480

PostgreSQL:Patroni 高可用架构,基于etcd的自动故障转移集群

本文详细介绍了基于Patroni和etcd构建PostgreSQL高可用集群的方案。Patroni作为外部守护进程,通过etcd分布式协调服务实现自动故障转移、主节点选举等关键功能,弥补了PostgreSQL原生缺乏自动故障转移的不足。文章涵盖核心架构(3节点PG+3节点etcd)、环境规划、etcd集群部署(包括配置验证)以及Patroni安装配置的关键步骤,特别强调了Patroni自动初始化PG实例、配置同步复制等生产级特性。该方案通过外部组件协同工作,在不修改PG源码的情况下实现了生产环境所需的高可用

数据知道的博客 2486

用Python+Django+Pyecharts复刻一个天气数据分析网站(附完整源码和数据集)

本文详细介绍了如何使用Python+Django+Pyecharts构建一个完整的天气数据分析网站,涵盖数据采集、清洗、可视化及部署全流程。通过实战案例,开发者可以学习到全栈开发的核心技能,包括工程化思维、用户体验优化和扩展性设计,特别适合参加技能大赛或需要提升Python开发能力的读者。

weixin_30919429的博客 402

泛微OA提交流程到下一个节点

泛微OA后端接口强制流程归档

CXYCMY的博客 2245

主流Web数据可视化库横评:ECharts、D3.js、Plotly等8库实测

数据可视化是数据科学项目落地的重要环节,一张清晰高效的图表能帮助业务理解复杂数据。当前Web端可视化库众多,ECharts、D3.js、Plotly等各有优劣,选型需综合考虑图表类型覆盖、交互能力、大数据量渲染性能、与Python生态的集成度以及工程化成本。本文基于同一套50万行数据的统一评测,对八大主流库进行实测对比,从基础绘图到复杂交互,从Notebook探索到企业级产品交付,剖析各自真实表现与适用场景,并给出分角色、分场景的选型建议,帮助你避开踩坑,快速找到最契合团队技术栈和业务需求的方案。

weixin_34043301的博客 588

国科大学习资料--人工智能原理与算法-2021年期末考试题解析(学长整理)

国科大学习资料–人工智能原理与算法-2021年期末考试题解析(学长整理) 国科大学习资料–人工智能原理与算法-2021年期末考试题解析(学长整理) 国科大学习资料–人工智能原理与算法-2021年期末考试题解析(学长整理) 根据学弟的反馈,该年的期末题只有5道,且均是作业题(所以大家一定要积极完成作业,考前多做几遍!!!!) 下面解析: 3.25 由于该题,我没有做过,所以只能给你英文版的答案。答案如下,其他的题目答案都是中文版。 5.9 8.10 12.20 15.13 ...

无名何许人的博客 3978

Vue3 - 详细实现微信公众号H5网页内置浏览器中预览下载word文档(doc)、excel表格(xls)、ppt文稿、pdf文档等文件,微信内部直接打开预览和下载到本地教程,安卓苹果手机无差异兼容

vue3,nuxt3,微信公众号,h5,移动端,网页,网站,vue微信内置浏览器下载文件,下载文件,在微信浏览器里面实现下载任意文件,H5需要在微信浏览器中下载excel文件,实现网页在微信内置浏览器中下载文件详细教程,安卓点击下载会提示打开浏览器,后端返回流文件,如何解决无法下载文件,跳转至浏览器下载文件,发送到电脑微信,安卓,苹果,手机系统,微信H5页面,vue3微信公众号H5网站,内置浏览器下载文档,如何在微信浏览器中预览office文件,word文档,excel文档,pdf文档,ppt文档,offi

🏆 前端领域优质创作者 1万+

Python 学习 ---> 模块、pypi ( 模块库 )、添加模块路径

什么是 模块 在 Python 中,一个.py文件就是一个模块(Module)。模块的名字就是文件的名字。在模块内部,通过全局变量__name__可以获取模块名(即字符串) 模块作用 为了实现代码的复用,通常会把一些其他程序中重用的代码拿出来单独放在一个程序文件中,

freeking101的博客 3479

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

在 Django 中使用 pyecharts

官方文档 https://pyecharts.org/#/ 官网的在 Django 中使用 pyecharts教程 : https://pyecharts.org/#/zh-cn/web_django 其中配置pyecharts_django_demo/urls.py中,修改如下,可以不用再demo/下创建urls.py(当然这也可能是新版本的标准) from django.conf.urls i...

Co_zy的博客 7714

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

用pyecharts生成仪表盘——将多张图片汇总到一个页面,大屏可视化数据展示

(前情提要)我爬了拉勾网搜索“设计”职位的招聘信息,详见Python爬虫获取拉勾网招聘信息并用pyecharts画了地图Geo,Map,条形图,饼图,词云图以及箱线图。详见拉勾网“设计”职位数据分析之用pyecharts画地图Geo,Map,拉勾网“设计”职位数据分析之用pyecharts画条形图Bar,拉勾网“设计”职位数据分析之用pyecharts画饼图(南丁格尔图玫瑰图)Pie,拉勾网“设计...

bo_gu的博客 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

eCharts在一个页面上画多张图

以下为两张折线图为例。

weixin_44882744的博客 2031

echarts实现一个页面同时显示多个图表

一个JSON数据,通过echarts实现一个页面同时显示多个图表,我这是通过写一个option实现多个图表(折线图,饼图,关系图)展示,也就是说只要一个div(dom对象),实现多个不同形状的图表展示。总体采用了LayUI(表格)+eCharts技术,通过在html页面,引入自定义的js,实现预期页面效果。 自己在网上找了下,没有找到对应的文章,直接来说怎么实现,所以特意写了此文章,共同学习。总结技巧:1.先用最少的代码显示出图 2.【关键点】自己能控制每个图在指定的地方的显示 3.确定每个图位置,整体布

weixin_38981413的博客 10万+

当Django遇上Pyecharts将碰撞出怎样的火花……

本文将介绍如何在 web 框架 Django 中使用可视化工具 Pyecharts, 看完本教程你将掌握几种动态展示可视化数据的方法 Django 模板渲染 1. 新建一个 Django 项目 命令行中输入以下命令 django-admin startproject pyecharts_django_demo 创建一个应用程序 python manage.py startapp demo 创建完之后,在Pycharm 中打开该项目,当然你也可以直接在 Pycharm 中创建 同时在 pyecharts

Python编程与实战的博客 1904

echarts实现一个页面同时显示多个不同形状的图表/动态往图表中存放数据

最近做的一个项目的其中一个页面有图表展示数据的需求,有柱状图、折线图和饼图,于是引入了强大的echarts. echarts的强大之处和有点这里就不多说了,详细请参照echarts官网和echarts在线demo。 但是我们的页面要展示的数据比较多,同一个页面有数个折线图、柱状图和饼图。项目引入echarts的方法是模块化引入,于是就有了一个问题:怎么在同一个页面用echarts同时展示多个图...

一只爱吃糖的小羊 4万+

django Echarts画图,饼图,堆叠柱状图,百分比显示

先看最终画面:   后台代码: from django.shortcuts import render,HttpResponse from app1 import models from datetime import datetime,date,timedelta def columnsChart(request): #统计所有来访公司来访次数的by month推移图(柱状...

java_raylu的博客 5536
上一篇: 关于爬虫在部署或爬取时编码报错问题的解决
下一篇: django+vue+nginx+uwsgi部署centos7,仅需九步
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值