本人大学刚毕业目前在一家互联网公司从事产品运营工作,一季度刚过,公司需要我出一份产品运营数据报表,由于产品用户数据、订单数据等数据量太大,我希望找一款Bi产品,支持我做出一个精美的可视化报表,还可以让我直接在报表内容查看原始数据文档,我从以下两个点去逐步实现我的需求:

1、数据可视化:在网上找了一些Bi工具,无一例外都需要收费,最后决定自己尝试pyecharts来实现,好在有自学Python的基础,实现起来不难;

2、数据文档在线预览:选了pyecharts之后,由于最后展现的是一个web视图,需要在web页面直接查看原始的excel文档,这个实现难度比较大,网上苦寻三天无果,即将放弃时刻找到了永中云预览插件版,如获至宝,最重要的是只要2行代码即可实现,而且完全免费!

以下是我的数据可视化报表截图:

下面来简单讲下如何实现:

1、数据可视化报表

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Geo, Page, Grid
from pyecharts.globals import ChartType, SymbolType
from pyecharts.charts import Liquid
from pyecharts.charts import Funnel
from pyecharts.globals import ThemeType
from pyecharts.charts import Bar,Bar3D
from pyecharts.charts import Pie
from pyecharts.charts import Line, EffectScatter
from pyecharts import charts

 

Python库:

Pandas:主要来读取excel源数据;

Pyecharts :Bar 柱状图,Pie 饼形图, Geo地图,Liquid 水滴图,Funnel 漏斗图,Line 折线图

当然还有其他图标没有用到有需要的可以到官网查阅相关文档:https://pyecharts.org/#/zh-cn/intro

以其中一个数据视图产品渠道推广和渠道激活为例,我需要做一个饼图来展示

pie_moblie = (
Pie()
.add(
"推广费",
[list(z) for z in zip(qudao_mobile, cost_mobile)],
radius=["20%", "45%"],
center=["22%", "50%"],
rosetype="radius",
label_opts=opts.LabelOpts(is_show=True,formatter='{b}:{d}%' ),
)
.add(
"激活量",
[list(z) for z in zip(qudao_mobile, jihuo_mobile)],
radius=["20%", "45%"],
center=["70%", "50%"],
rosetype="area",
label_opts=opts.LabelOpts(is_show=True,formatter='{b}:{d}%'),
)
.set_global_opts(title_opts=opts.TitleOpts(title="2022年一季度各渠道消耗&激活"),
legend_opts=opts.LegendOpts(is_show=True,)
)
)

 效果如下:

做好各个视图后

page.add(bar3,c3,pie_mobile)
page.render('test.html')

通过page.add()将前面制作的视图放在一个页面,最后通过page.render()生成一个html页面

,再对生成的html做适当的样式调整,就得到了我上面展示的最终效果。

2、文档在线预览:

先下载免费插件 点击下载

将下载好的插件放在html相同的目录下,再按照示例代码把相应的代码加到刚刚生成的html里

        <div id="click" style="text-align: center; font-size: 10px;font-weight: bold;margin-top:40px;margin-bottom: 70px;">点击查看源数据</div>
<script> const url = 'https:/xxxx.com/1.docx'; // url为预览文件地址 document.getElementById('click').onclick = function() { getFileUrl(url) // 调用getFileUrl方法,预览文件 }

 

在URL上填写文件的url地址,这样页面上就会出现“点击查看源数据”,点击后就可以直接在线预览office文件,不需要启动本地Office软件,word excel ppt pdf都支持。

预览效果:

以上就是我这几天自己动手的成果,整个数据视图不需要借助任何软件,便于分享,不管是数据视图还是源文件预览都没有设备和浏览器障碍。

 

告别收费BI!如何自己动手做一个免费的可视化数据报表还支持文档在线预览?的更多相关文章

  1. 做一个新产品需求,体验的分析文档?(例:喜马拉雅FM)

    2.1 战略层 2.11 产品定位: 一款产品覆盖面广,收听节目种类齐全,资源丰富的电台APP. 以PGC为主流,通过合作方式吸纳专业的电台人,节目人,行业名人分享内容. 融合UGC,满足人们在空闲时 ...

  2. [BI项目记]-配置Sharepoint2013支持文档版本管理笔记

    做开发或者做方案,写文档是很重要的一个工作,我们经常需要知道文档被修改的次数,谁在什么时间修改的文档,以及在某一个版本中,都修改了哪些内容,以及不同版本的文档之间有什么差别. 如何对文档进行版本管理, ...

  3. Swagger: 一个restful接口文档在线生成+功能测试软件

    一.什么是 Swagger? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 ...

  4. Python3基础 函数名.__doc__显示一个函数的单行与多行函数文档

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  5. 分享一个集成在项目中的REST APIs文档框架swagger

    1 为什么是使用swagger? 1-1 当后台开发人员开发好接口,是不是还要重新书写一份接口文档提给前端人员,当然对于程序员最不喜欢的就是书写文档(当然文档是必须的,有利于项目的维护) 1-2 当后 ...

  6. entfrm开发平台,一个免费开源可视化的无代码开发平台

    简介 entfrm开发平台,是一个以模块化为核心的无代码开发平台,是一个集PC和APP快速开发.系统管理.运维监控.开发工具.OAuth2授权.可视化数据源管理与数据构建.API动态生成与统计.工作流 ...

  7. 教你动手做一个 iOS 越狱 app

    前言 俗话说得好, 万事开头难. 仅仅是上图一个如此简单地不能再简单的小app, 其实都不算是app, 只是注入了一段代码进系统中, 等到特定的函数方法调用的时候就会被我们hook掉, 执行我们写的代 ...

  8. [js高手之路]html5 canvas动画教程 - 自己动手做一个类似windows的画图软件

    这个绘图工具,我还没有做完,不过已经实现了总架构,以及常见的简易图形绘制功能: 1,可以绘制直线,圆,矩形,正多边形[已完成] 2,填充颜色和描边颜色的选择[已完成] 3,描边和填充功能的选择[已完成 ...

  9. 图标网站,IcoMoon,自己动手做一个 font

    很有用的IcoMoon,在线制作工工具:https://icomoon.io/app/#/select/font 大神解说:如何灵活利用免费开源图标字体-IcoMoon篇http://www.zhan ...

随机推荐

  1. CSS性能优化的几个技巧

    前言 随着互联网发展至今,对于网站来说,性能显的越来越重要了,CSS作为页面渲染和内容展现的重要环节,影响着用户对整个网站的第一体验.所以,我们需要重视与CSS相关的性能优化. 项目开发初期我们可能因 ...

  2. springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found

    典型如下 第一种import java.util.List;@RestController@RequestMapping("/order")@DefaultProperties(d ...

  3. 定位一个oom问题

    当系统出现oom问题时,我们一般的定位思路是怎样的? 系统OOM常见的原因有: 1.用户态内存需求过多,资源不足: 2.大页配置不正确: 3.水位线值异常: 4.slab内存过多: 5.rcu异常: ...

  4. Spark—GraphX编程指南

    Spark系列面试题 Spark面试题(一) Spark面试题(二) Spark面试题(三) Spark面试题(四) Spark面试题(五)--数据倾斜调优 Spark面试题(六)--Spark资源调 ...

  5. bzoj2007/luoguP2046 海拔(平面图最小割转对偶图最短路)

    bzoj2007/luoguP2046 海拔(平面图最小割转对偶图最短路) 题目描述: bzoj  luogu 题解时间: 首先考虑海拔待定点的$h$都应该是多少 很明显它们都是$0$或$1$,并且所 ...

  6. Python安装wxPython和ubuntu使用apt提示不能更新

    [空两格]昨天憨批室友搁我面前装b,说他会用pip安装Python包了,说是安装wxPython的时候通过换源解决了之前安装出错的问题.我一听,这事不对劲啊,是这个b直接看不懂输出了吧.果然,我让他在 ...

  7. leetcode-3无重复字符的最长子串

    题目原题: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 ...

  8. vue渐进式?

    小到可以只使用核心功能,比如单文件组件作为一部分嵌入:大到使用整个工程,vue init webpack my-project来构建项目:VUE的核心库及其生态系统也可以满足你的各式需求(core+v ...

  9. kafka producer如何优化打入速度?

    增加线程 提高 batch.size 增加更多 producer 实例 增加 partition 数 设置 acks=-1 时,如果延迟增大:可以增大 num.replica.fetchers(fol ...

  10. Oracle入门基础(九)一一创建表和管理表

    练习:查询每一年入职人数及总人数 SQL> select count(*) Total, 2 sum(decode(to_char(hiredate,'yyyy'),'1980',1,0)) & ...