前言

之前尝试过多种数据可视化的方式,包括Tableau 、Superset 、matplotlib 等,在之前的博客中都有所介绍,今天主要介绍如何利用Pyecharts来搭建数据看板~

温馨提示

如果在使用过程中遇到无法渲染(即输出均为空白)的情况,可以考虑使用环境是否受网络限制无法读取JS文件,这个时候可以按以下步骤进行处理:

1、前往https://github.com/pyecharts/pyecharts-assets下载assets文件
2、存放在当地目录或者配置在服务器

wget https://github.com/pyecharts/pyecharts-assets/archive/master.zip
cd pyecharts-assets
python -m http.server

3、修改代码

from pyecharts.globals import CurrentConfig, OnlineHostType# 存放目录
CurrentConfig.ONLINE_HOST="D:\\public\\pyecharts-assets-master\\assets\\"# 配置服务器
CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8000/assets/"

安装

pip install pyecharts

使用

具体图例可参考官方文档:https://pyecharts.org/#/zh-cn/intro

import json
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Sankey, Page, Pie, Scatter, Funnel, Line
from pyecharts.components import Table
from pyecharts.commons.utils import JsCode
1、看板标题
def plot_dashboard_title():pic = Pie(init_opts=opts.InitOpts(chart_id=1)).set_global_opts(title_opts=opts.TitleOpts(title="数据可视化看板", title_textstyle_opts=opts.TextStyleOpts(font_size=28), pos_left="center", pos_top="middle"))pic.render("./dashboard_output/dashboard_title.html")return pic
2、桑基图
def plot_sankey():with open('./dashboard_data/node.json', 'r', encoding='utf-8') as f:node = json.load(f)with open('./dashboard_data/link.json', 'r', encoding='utf-8') as f:link = json.load(f)pic = (Sankey(init_opts=opts.InitOpts(width='1300px', height='800px')).add('', node, link, node_width=30, node_gap=10, node_align='left',linestyle_opt=opts.LineStyleOpts(opacity=0.3, curve=0.5, color='source'),label_opts=opts.LabelOpts(position='left'), ).set_global_opts(title_opts=opts.TitleOpts(title="场景归因入口UV流向分布")))pic.render("./dashboard_output/sankey_image.html")return pic
3、数据表
def plot_table():df = pd.read_csv('./dashboard_data/dz_gy_data.csv')df['rate'] = df.apply(lambda x: round(x['result_user']/x['apply_user'],3), axis=1)df['page'] = df.apply(lambda x: x['new_source_event'].split('-')[0], axis=1)df['source'] = df.apply(lambda x: x['new_source_event'].split('-')[1], axis=1)df = df.sort_values(by=['apply_cnt'], ascending=False)headers = ['一级页面', '归因入口', '页面浏览PV', '页面浏览UV', '提交率(提交UV/页面浏览UV)']rows = df[['page', 'source', 'apply_cnt', 'apply_user', 'rate']].values.tolist()pic = Table().add(headers, rows).set_global_opts(title_opts=opts.ComponentTitleOpts(title="")) pic.render("./dashboard_output/table_image.html")return pic
4、散点图
def plot_scatter():df = pd.read_csv('./dashboard_data/dz_gy_data.csv')data = df[['new_source_event', 'pv', 'uv']].sort_values(by=['pv'], ascending=False).head(5)pic = (Scatter(init_opts=opts.InitOpts(width='610px',height='400px')).add_xaxis(data['pv'].astype(int)).add_yaxis("",[list(z) for z in zip(data['uv'], data.new_source_event)],label_opts=opts.LabelOpts(formatter=JsCode("function(params){return params.value[2]}")),).set_global_opts(title_opts=opts.TitleOpts(title=name+"TOP5归因入口页面浏览PV与UV分布"),yaxis_opts=opts.AxisOpts(name="UV"),xaxis_opts=opts.AxisOpts(name="PV"),))pic.render("./dashboard_output/bubble_image.html")return pic
5、漏斗图
def plot_funnel():df = pd.read_csv('./dashboard_data/dz_funnel_data.csv')data = df.values.tolist()[0]header = ["阶段一", "阶段二", "阶段三", "阶段四","阶段五", "阶段六"]pic = (Funnel(init_opts=opts.InitOpts(width='615px', height='400px')).add("漏斗", [list(z) for z in zip(header, data)], label_opts=opts.LabelOpts(position='left')).set_global_opts(title_opts=opts.TitleOpts(title=name+"漏斗转化"), legend_opts=opts.LegendOpts(is_show=False)))pic.render("./dashboard_output/funnel_image.html")return pic
5、折线图
def plot_trend_line():df = pd.read_csv('./dashboard_data/dz_trend_uv.csv')pic = Line().add_xaxis(xaxis_data=[str(i) for i in df.s_date.tolist()])\.add_yaxis(series_name='页面1', y_axis=df['uv1'].tolist(),label_opts=opts.LabelOpts(is_show=False))\.add_yaxis(series_name='页面2', y_axis=df['uv2'].tolist(), label_opts=opts.LabelOpts(is_show=False))\.add_yaxis(series_name='页面3', y_axis=df['uv3'].tolist(), label_opts=opts.LabelOpts(is_show=False))\.set_global_opts(title_opts=opts.TitleOpts(title="各页面日浏览"+name),tooltip_opts=opts.TooltipOpts(trigger="axis"),yaxis_opts=opts.AxisOpts(type_="value",axistick_opts=opts.AxisTickOpts(is_show=True),splitline_opts=opts.SplitLineOpts(is_show=True),),)\.set_series_opts(markarea_opts=opts.MarkAreaOpts(data=[opts.MarkAreaItem(name="特殊日", x=('4','6')),opts.MarkAreaItem(name="特殊日", x=('14','16')),opts.MarkAreaItem(name="特殊日", x=('24','26'))]))pic.render("./dashboard_output/line_image.html")return pic
6、看板搭建
def dashboard_output():page = Page(layout=Page.DraggablePageLayout).add(plot_dashboard_title(),plot_gy_sankey(),plot_gy_table(),plot_scatter(),plot_funnel(),plot_trend_line())page.render("./dashboard_output/page_draggable.html")
7、调整布局保存chart_config.json

8、根据布局重新输出
Page.save_resize_html("./dashboard_output/page_draggable.html", cfg_file="./dashboard_output/chart_config.json",
dest="./dashboard_output/new_page_draggable.html")

数据分析进阶 - 使用Pyecharts搭建数据看板相关推荐

  1. 数据分析展示(通过Mysql和Python对数据清洗和整合后,利用tableau搭建数据看板进行可视化显示,最后对数据结果给出简要的个人分析)

    作品展示链接:https://blog.csdn.net/weixin_44869426/article/details/122952133 Step1:数据分析看板搭建 数据看板简介:①以简洁直观. ...

  2. 搭建数据指标体系1|概览

    数据指标 2 搭建业务指标体系 2.1搭建数据指标体系的目的 2.1.1 确定指标体系 北极星指标 基本增长等式 总览图 2.1.2 快速定位问题 2.1.3 提高分析效率 2.2搭建数据指标体系的步 ...

  3. pyecharts0.5.x制作含地图的数据看板

    引言 pyecharts作为Python的数据可视化包,其强大的功能不言而喻,Python + Echart,想想就觉得牛叉.目前pyecharts有两个大的版本,一个是0.5.x版本的,一个是1.0 ...

  4. 2、禅道数据看板(django+vue)

    1.vue4搭建数据看板前端框架 1.1vue-cli安装省略.官方文档:https://cli.vuejs.org/ 1.2命令行创建app 命令行工具iTerm输入:vue create data ...

  5. 电商数据分析方法——搭建数据指标体系

    指标是量化衡量标准.衡量目标的单位或方法,例如对电商数据分析来说,最常见的指标就是UV和PV,而针对APP来说,最常见的就是DAU,MAU. 有了指标也就知道应该从哪些角度入手开始数据分析,数据驱动已 ...

  6. 工程监测管理平台、工程数据看板、工程总览、动态模型、数据分析、数据跟踪、建筑工地、数据报表、警点管控、现场记录、观测记录、测点管理、模型管理、文档管理、墙体下沉、成员管理、axure原型、产品原型

    工程监测管理平台.工程数据看板.工程总览.动态模型.数据分析.数据跟踪.建筑工地.数据报表.警点管控.现场记录.观测记录.测点管理.模型管理.文档管理.墙体下沉.成员管理.axure原型.产品原型   ...

  7. 《从Excel到R 数据分析进阶指南》一第1章 生成数据表1.1 导入数据表

    本节书摘来自异步社区<从Excel到R 数据分析进阶指南>一书中的第1章,第1.1节,作者 王彦平(蓝鲸),更多章节内容可以访问云栖社区"异步社区"公众号查看 第1章 ...

  8. 【数据分析进阶】DCIC竞赛-task2 数据可视化

    [数据分析进阶]DCIC竞赛-task2 数据可视化 数据可视化介绍 常规可视化 可视化组成元素 可视化图标类型 地图可视化 赛题可视化 1. 24小时巡游成统计数量 2. 24小时巡游车平均GPS速 ...

  9. 小白学数据分析--数据看板

    背景 最近打算学习一点数据分析的内容,下图中虽然广告成分有点多,但是技多不压身个,都说程序员应该有一点产品思维,并对数据保持敏感. 看了一些培训机构的介绍,涉及到的知识点还挺多的,有工具.思维.实操及 ...

最新文章

  1. 十二种特征工程相关技术简介
  2. NB-IOT的优势体现在哪些方面
  3. kali linux 编码,Kali Linux 2019.4解决中文乱码问题
  4. 最新Kernel 2.6.29正式版发布啦
  5. A quick introduction to Google test
  6. 文件目录管理与显示c语言,Centos 7 文件和目录管理
  7. ECMAScript 6 -- let和const命令
  8. DistCp迁移Hive数据过程中源集群增加删除文件等场景测试
  9. scope参数错误或没有scope权限_SSM 单体框架 - 前端开发:用户和权限模块
  10. 基于Linux和MiniGUI的嵌入式系统软件开发指南(七)
  11. oe7 安装财务模块后,科目表没有导入成功
  12. 【图像压缩】基于matlab GUI DCT图像无损压缩【含Matlab源码 726期】
  13. matlab 声纹识别,识别模型论文,关于基于MATLAB的声纹识别系统软件的设计相关参考文献资料-免费论文范文...
  14. Java打印九九乘法表
  15. php7 opcache 编译,PHP7中用opcache.file_cache导出脚本opcode实现源代码保护
  16. 关于GOP和帧率、码率的关系
  17. 微信公众号封面一键生成器
  18. 《深入理解计算机系统》Lab2-Bomblab
  19. 5g通用模组是什么_5G通用模组使能行业数字化转型,中国电信在行动
  20. 【短视频 】 分享几个免费剪辑视频的软件

热门文章

  1. 解决File ~ could only be written to 0 of the 1 minReplication nodes.
  2. STM32参考手册、数据手册和编程手册
  3. 使用深度学习的图像分割(综述)
  4. 【最新免费】CCNA中文注释题库精选模拟题
  5. google桌面安装介绍
  6. 锐捷 Smartweb管理系统 命令执行漏洞
  7. John the Ripper 安装
  8. 看这里!java架构师教学视频全百度云
  9. 大学生的小乐趣:HTML制作MacOS Dock栏
  10. 论在Xamarin里对AbsoluteLayout动态添加按钮控件实例(1)