【python可视化大屏】使用python实现可拖拽数据可视化大屏

介绍:

我在前几期分享了关于爬取weibo评论的爬虫,同时也分享了如何去进行数据可视化的操作。但是之前的可视化都是单独的,没有办法在一个界面上展示的。这样一来呢,大家在看的时候其实是很不方便的,就是没有办法一目了然的看到数据的规律。为了解决这个问题我使用pyecharts实现了一个可视化的大屏。接下来为大家分享一下

视频分享:

【python可视化大屏】使用python实现可拖拽数据可视化大屏

可视化大屏展示:

可视化大屏1
在这里插入图片描述
可视化大屏2:
在这里插入图片描述
实现流程解析:
本次实现使用的是pyecharts这个库
第一步肯定是安装pyecharts这个库了
安装可以使用pip进行安装,命令如下:

pip install pyecharts

如果安装不成功的话,可以使用清华镜像站进行安装,命令如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

第二步就是写代码了,其实我们可以到pyecharts的官网上看一下案例的。一看就基本上知道怎么写的了。
下面的这个就是pyecharts的网站了。
在这里插入图片描述
我们随便点击一个案例看一下
在这里插入图片描述
可以看到案例代码写的非常的详细,需要哪些库,然后数据的格式是怎样的一目了然。
然后我们按照对应的代码写就可以了。
下面就是pyecharts官方给的拖拉拽的可视化效果,可以给代码拿下来运行体验一下
在这里插入图片描述
阅读了代码以后,我总结一下其实实现拖拉拽的数据可视化大屏就是给原来单个的可视化图表add到布局的layout就可以了。
下面是我总结的代码模板:

def bar_datazoom_slider01() -> Bar: c = ( Bar() .add_xaxis(Faker.days_attrs) .add_yaxis("商家A", Faker.days_values) .set_global_opts( title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"), datazoom_opts=[opts.DataZoomOpts()], ) ) return c
def bar_datazoom_slider02() -> Bar: c = ( Bar() .add_xaxis(Faker.days_attrs) .add_yaxis("商家A", Faker.days_values) .set_global_opts( title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"), datazoom_opts=[opts.DataZoomOpts()], ) ) return c

给单个的写好以后,add到layout中就可以了,像不像搭积木一样的

def page_draggable_layout(): page = Page(layout=Page.DraggablePageLayout) page.add( bar_datazoom_slider(), line_markpoint(), pie_rosetype(), grid_mutil_yaxis(), liquid_data_precision(), table_base(), ) page.render("page_draggable_layout.html")

之前我们实现了单个的可视化,具体如下:
在这里插入图片描述
还有词云
在这里插入图片描述
然后单个的代码如下:

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

# 读取CSV数据
df = pd.read_csv('./weiboData.csv')

# 处理粉丝数(以“万”为单位的情况)
df['粉丝数'] = df['粉丝数'].apply(lambda x: float(x.replace('万', '')) * 10000 if '万' in str(x) else float(x))

# 选择粉丝数前20的用户
top20_users = df.nlargest(20, '粉丝数')

c = (
    Bar(init_opts=opts.InitOpts(renderer='svg'))
    .add_xaxis(list(top20_users['评论用户名']))
    .add_yaxis("粉丝数", list(top20_users['粉丝数']))
    .add_yaxis("关注数", list(top20_users['关注人数']))
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(title_opts=opts.TitleOpts(title="评论用户粉丝前20情况"))
    .render("fans.html")
)

还有其他的,我就不一一列代码了

然后我们现在的工作就是给他们整合到一起就可以了
具体,比如说我们可以先整合这个showFans.py的代码,
就是这个样子:

ef showFans() -> Bar:
    df = pd.read_csv('./weiboData.csv')

    # 处理粉丝数(以“万”为单位的情况)
    df['粉丝数'] = df['粉丝数'].apply(lambda x: float(x.replace('万', '')) * 10000 if '万' in str(x) else float(x))

    # 选择粉丝数前20的用户
    top20_users = df.nlargest(20, '粉丝数')

    c = (
        Bar(init_opts=opts.InitOpts(renderer='svg',theme="dark"))
        .add_xaxis(list(top20_users['评论用户名']))
        .add_yaxis("粉丝数", list(top20_users['粉丝数']))
        .add_yaxis("关注数", list(top20_users['关注人数']))
        .reversal_axis()
        .set_series_opts(label_opts=opts.LabelOpts(position="right"))
        .set_global_opts(title_opts=opts.TitleOpts(title="评论用户粉丝前20情况"))
    )

    return c  # 返回图表对象而不是调用 render 函数

def pageLayout():
    # 创建拖拽布局的页面
    page = Page(layout=Page.DraggablePageLayout)

    # 添加自定义图表函数
    page.add(
        showFans()
    )

    # 渲染页面
    page.render("demo.html")

这样就给一个整合好了,然后后面的就是无脑操作了。
之后我们运行代码会产生一个demo.html的文件(这个文件命名自定义,我的代码里写的是demo.html,你也可以叫其他的名字,都可以的),点击这个文件就会展示我们的大屏,下面就是最终的效果了
在这里插入图片描述

我们可以看到在图的左上角有一个save config,这个的作用呢其实就是为了保存我拖拉拽排版大屏之后的配置文件。就是说,当我们进行拖拽各个单独的可视化文件的时候,各个子可视化文件之间会有对应的位置信息,这个config文件呢就是记录这些信息的。
在这里插入图片描述
当我们进行排版好以后,我们就看可以点击save config然后保存这个config信息。
之后我们展示正式的大屏的时候时候,加载这个config文件就可以展示了。这个就是正式的版本了。

在这里插入图片描述
在这里插入图片描述
完成了上面的操作以后,然后就是使用demo.html和chart_config.json来实现正式版本的大屏。具体实现代码如下:

from pyecharts.charts import Page

Page.save_resize_html(
    source="demo.html", 
    cfg_file="chart_config.json", 
    dest="final_dashboard.html")

然后我们在运行这个代码,就会产生一个final_dashboard.html文件,我们双击这个文件就会看到最终的效果了。

由于笔者能力有限,所以在阐述的时候难免有些不准确的地方,还请大家多多包涵!

完整源码【python可视化大屏】使用python实现可拖拽数据可视化大屏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/307152.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

centos安装redis并配置开机自启动

目录 前言 redis安装 1、下载redis 2、安装redis 3、修改配置文件 redis配置服务并实现开机自启动 前言 Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,它支持多种数据结构,包括字符串、哈希表、列表、集…

毛泽东,如何熬过人生至暗时刻?

文章目录 一、8年内三次蒙冤1、第一次蒙冤2、第二次蒙冤3、第三次蒙冤 二、毛泽东是怎么面对逆境的?三、极致的乐观精神四、结语参考文献 一件事,你做对了,立了功,但结果却是严厉的惩罚,甚至让你回到原点,你…

Fiddler -- https配置

首先,我们先在官网(https://www.telerik.com/fiddler)下载fiddler 下载好后双击 “.exe” 文件即完成安装 配置HTTPS 打开fiddler,在tools --> options --> https – 一次性勾选所有内容,点击 OK,…

Web开发SpringBoot SpringMVC Spring的学习笔记(包含开发常用工具类)

开发框架学习笔记 一.Spring SpringMVC SpringBoot三者的联系SpringMVC工作原理 二.SpringBoot的学习框架学习 2.各个类之间的继承和实现关系3.理解面向对象的思想(其实这个想写在2中的)四.开发常用工具Lombok4.0说在前面(如何快速使用Lombok)4.1了解Lombok4.2Lombok的作用一:减…

BERT Intro

继续NLP的学习,看完理论之后再看看实践,然后就可以上手去kaggle做那个入门的project了orz。 参考: 1810.04805.pdf (arxiv.org) BERT 论文逐段精读【论文精读】_哔哩哔哩_bilibili (强推!)2023李宏毅讲解大模型鼻祖BERT,一小时…

2023年后,AI 还有什么研究方向有前景?

什么是AI ​ AI代表人工智能,它是指通过计算机科学技术使机器能够执行需要智力的任务的一种技术。这些任务包括学习、推理、问题解决和感知等,通常是人类智能的表现。人工智能的目标是使计算机系统能够执行需要人类智力的任务,而不需要人类的…

一文读懂服务器带外管理

带外管理 服务器带外管理(Out-of-Band Management)是指在服务器正常运行时,通过专门的管理通道对服务器进行监控、配置和控制,而无需依赖服务器的主操作系统 管理通道是独立于服务器主处理器和操作系统的,通常是通过专…

世邦spon IP网络对讲广播系统任意文件上传漏洞

产品介绍 世邦通信IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 漏洞描述 spon IP网络对讲广播系统存在任意文件上传漏洞,攻击者可以通过构造特殊请求包上传恶意后门文件,从…

5.MapReduce之Combiner-预聚合

目录 概述本地预计算 Combiner 意义实践前提代码日志观察 结束 概述 在 MR、Spark、Flink 中,常用的减少网络传输的手段。 通常在 Reducer 端合并,shuffle 的数据量比在 Mapper 端要大,根据业务情况及数据量极大时,将大幅度降低效…

前端-基础 表格标签 - 基本使用及表头单元格 详解

基本使用 : 主要作用 : 即 主要 用于显示,展示数据,因为它可以让数据显示的非常的规整,可读性非常好。 特别是后台展示数据的时候,能够熟练运用表格就显得很重要。 一个清爽简约的表格能够把繁杂 的…

TOPS、MIPS、DMIPS、MFLOPS、吞吐量与推理效率

1.概述 在深度学习对应的神经推理中经常涉及几个重要概念,TOPS、MIPS、DMIPS,MFLOPS,下文对其做对比说明。 2.概念对比 2.1 MIPS Million Instructions Per Second的缩写,每秒处理的百万级的机器语言instructions。这是衡量处…

coredump+gdb调试

1、什么是coredump Coredump(核心转储)是操作系统在程序异常终止(例如由于段错误或其他严重错误)时创建的一种文件。这个文件包含了程序崩溃时刻进程的内存镜像,通常还包括程序计数器、寄存器内容和堆栈内存等信息&am…

我在考 pmp,想知道如何去学习 pmbok?

PMP新版大纲加入了ACP敏捷管理的内容,而且还不少,敏捷混合题型占到了 50%,很多人都觉得考试难度提升了,我最开始备考的时候也被折磨过一段时间,但是后面还是找到了方法,3A通过了考试,也算有点经…

设计模式——桥接模式(Bridge Pattern)

概述 桥接模式是一种结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维…

SpringBoot整合人大金仓数据库KingBase

1 去KingBase官网下载驱动jar包 2 将解压得到的所有jar包放置在libs目录下&#xff08;没有就新建一个目录&#xff09; 3 在pom文件添加相关依赖 <!--添加KingBase所需要的依赖--> <dependency><groupId>com.kingbase</groupId><artifactId>kin…

el-select 单选时,选择后输入框的is-focus状态并没有取消

前两天在封装组件的时候&#xff0c;发现el-select 单选时&#xff0c;选择后输入框的is-focus状态并没有取消&#xff0c;需要手动点其它地方才会取消&#xff0c;于是想着找找为什么 一、通过调试源码发现&#xff0c;输入框在点击选项后触发blur&#xff0c;紧接着又触发了…

亚马逊,速卖通,美客多卖家怎么才能安全及有效的积累产品的评论

测评补单对于亚马逊、速卖通等平台卖家来说&#xff0c;是一种重要的运营手段之一&#xff0c;通过测评补单快速增加产品的销量、评论数量&#xff0c;提升排名&#xff0c;从而打造爆款产品。 测评养号的好处包括&#xff1a; 1. 提升店铺信誉&#xff0c;制造爆款&#xff…

【Django开发】美多商城项目第2篇:Django用户注册和登录开发(附代码,已分享)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论django商城项目相关知识。项目利用Django框架开发一套前后端不分离的商城项目&#xff08;4.0版本&#xff09;含代码和文档。功能包括前后端不分离&#xff0c;方便SEO。采用Django Jinja2模板引擎 Vue.js实现前后端…

【2023】java常用HTTP客户端对比以及使用(HttpClient/OkHttp/WebClient)

&#x1f4bb;目录 1、介绍2、使用2.1、添加配置2.1.1、依赖2.1.2、工具类2.1.3、实体2.1.4、Controller接口 2.2、Apache HttpClient使用2.3 、OkHttp使用2.4、WebClient使用 1、介绍 现在java使用的http客户端主要包括以下几种 而这些中使用得最频繁的主要是&#xff1a; A…

持续领跑云安全赛道!安全狗多项安全能力获认可

近日&#xff0c;以“数字安全 未来可期”为主题的“2024安全市场年度大会”在北京成功举行。 作为国内云原生安全领导厂商&#xff0c;安全狗也受邀出席此次活动。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;创办于2013年&#xff0c;是国内领…