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

时间:2024-01-10 01:02:10 标签:  拖拽  数据  python  

介绍:

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

视频分享:

https://www.bilibili.com/video/BV1BV41197kv/?spm_id_from=333.999.0.0

可视化大屏展示:
可视化大屏1
image

可视化大屏2:
image

实现流程解析:
本次实现使用的是pyecharts这个库
第一步肯定是安装pyecharts这个库了
安装可以使用pip进行安装,命令如下:
pip install pyecharts
如果安装不成功的话,可以使用清华镜像站进行安装,命令如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

第二步就是写代码了,其实我们可以到pyecharts的官网上看一下案例的。一看就基本上知道怎么写的了。
下面的这个就是pyecharts的网站了。
image

我们随便点击一个案例看一下
image

可以看到案例代码写的非常的详细,需要哪些库,然后数据的格式是怎样的一目了然。

然后我们按照对应的代码写就可以了。

下面就是pyecharts官方给的拖拉拽的可视化效果,可以给代码拿下来运行体验一下
image

阅读了代码以后,我总结一下其实实现拖拉拽的数据可视化大屏就是给原来单个的可视化图表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")

image

还有词云
image

然后单个的代码如下:
`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的代码,
就是这个样子:
`def 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,你也可以叫其他的名字,都可以的),点击这个文件就会展示我们的大屏,下面就是最终的效果了
image

我们可以看到在图的左上角有一个save config,这个的作用呢其实就是为了保存我拖拉拽排版大屏之后的配置文件。就是说,当我们进行拖拽各个单独的可视化文件的时候,各个子可视化文件之间会有对应的位置信息,这个config文件呢就是记录这些信息的。
image

当我们进行排版好以后,我们就看可以点击save config然后保存这个config信息。
之后我们展示正式的大屏的时候时候,加载这个config文件就可以展示了。这个就是正式的版本了。
image
image

image
完成了上面的操作以后,然后就是使用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文件,我们双击这个文件就会看到最终的效果了。

由于笔者能力有限,所以在阐述的时候难免有些不准确的地方,还请大家多多包涵!
源码获取,关注公众号,回复“可视化大屏”即可获取!

来源:https://www.сnblоgs.соm/tаоtаоNаmе/p/17955600

智能推荐

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

标签:拖拽  数据  python  

你好,我是@马哥python说,一枚10年程序猿。一、效果演示以下是我近期用Python开发的原创可视化数据分析大屏,非常适合毕设用,下面逐一展示:(以下是截图,实际上有动态交互效果哦)以下大屏均为@马哥python说的个人原创,请勿转载。1.1 影视剧分析大屏1.2

标签:拖拽  适合  数据  pyecharts  python  

 作者水平低,如有错误,恳请指正!谢谢&#

标签:可视化  spring boot  echarts  mysql  

之前数据分层处理,最后把轻度聚合的结果保存到 ClickHouse 中,主要的目的就是提供即时的数据查询、统计、分析服务。这些统计服务一般会用两种形式展现,一种是为专业的数据分析人员的 BI 工具,一种是面向非专业人员的更加直观的数据大屏。以下主要是面向百度的 sugar 的数据大屏服务的接口开发。在可视化大屏中每个组件都需要一个单独的接口,图中一共涉及 8 个组件。

标签:数据  ADS  

猜你喜欢

一款专注可视化平台工具,功能强大,高可扩展的HTML5可视化编辑器&#x

标签:vue.js  编辑器  前端  

   正文   1. 阿里云DataV2. 积木报表jimureport3. 百度Sugar4. 帆软最经常的工作是将一些项目的数据从数据库导出,然后分门别类的列到excel表格中,领导看起来眼花缭乱。要是能以图表可视化展现出来,领导就可以看到项目近几个月的走势,也知道之后要怎么决策了。尝试了使用excel制作图表,由于操作复杂,放弃了,于是在网上找到了以下四种可视化工具,现在我们来看一下:1. 阿里云Data

标签:四款  工具  做大屏  

目录一、开发背景二、爬虫代码2.1 爬微博列表2.2 爬微博评论2.3 导入MySQL数据库三、可视化代码3.1 大标题3.2 词云图(含:加载停用词)3.3 玫瑰图(含:snownlp情感分析)3.4 柱形图-TOP10关键词3.5 折线图-讨论热度趋势3.6 地图-IP分布3.7 Page组合大屏四、彩蛋-多种颜色主题4.1 INFOGRAPHIC主题4.2 MACARON

标签:舆情  淄博  热评  烧烤  python  

相关问题

相关文章

热门文章

推荐文章

相关标签