2023年最强大的12款数据可视化工具,值得收藏
做数据分析也有年头了,好的坏的工具都用过,推荐几个觉得很好用的,避坑必看!
PS:一般比较成熟的公司里,数据分析工具不只是满足业务分析和报表制作,像我现在给我们公司选型BI工具,是做全平台全方位的数据处理,外源数据更新、实时抽取、性能优化等等都是非常关注的点,所以Excel这种适合个人分析的就不推荐了,不适合专业的数据分析师。
- 数据存储层:Access、SQL Server、DB、Oracle等
- 数据处理层:Python、Hadoop
- 数据报表层:Finereport、简道云
- 数据展示层:Tableau、Powerbi、Finebi
一、数据存储层面
这一方面主要是数据库和数据仓库的一些知识点,企业要想做数字化转型,把原先的一些数据系统,如ERP、OA、CRM、Excel等,必须得进行数字打通,不然整个企业就相当于在进行烟囱式开发,数据东一块,西一块,根本不能成为体系。

具体的,就是一些数据库的使用,不要说这方面的知识不想学,有运维替你管着。
一个好的大数据体系,数据仓库和数据库、数据湖、数据集市的建立是非常重要的,建模的维度就决定了你后面分析的维度,如果维度不够全面与准确,那你的工具再好也就没有意义了。
二、数据处理层面
python、hadoop可以闪亮登场了,但是hadoop是一个非常复杂的平台,需要的技术很多,所以这里我们暂时不讨论。
使用Python的好处是自由度非常高,能够灵活运用模型和算法,并且从数据采集到数据清洗到数据分析,一种语言就可以全部搞定。
现在很多人都在说不学python会怎么怎么样,但其实不是这样,归根结底只是一个底层语言,需要混合使用。Python是有一定门槛的,而且学习的时间成本不低,往往一次分析需要花较多的时间,如果不是大型分析项目,有点大材小用。
但是对于大型的项目,尤其是涉及到数据挖掘类的建议用python。

还有一些可以数据抓取的工具,我就不说了,本质其实都差不多。
三、数据报表层面
可能提到报表,很多人脑子里的想法就是Excel,这其实是完全不对的,excel的短板是很明显的:
- Excel会导致企业信息化程度不够
- 数据口径不一致,浪费人力去核对
- 数据采集困难,更改不能实时显示数据

所以更推荐轻量级的数据报表工具,比如简道云就很适合做各种数据报表。
https://www.jiandaoyun.com
从数据的收集(在线表单),到各种审批流程的流转(流程表单),再到数据的分析和展示(仪表盘)都做的比较完善。企业日常办公和管理需求完全能够满足。

如果是有一些代码基础的技术人员,推荐使用Finereport,这里简单说下原因:
报表开发方面,FineReport比Excel更专业一些,因为它是一个纯Java开发的报表软件,相对于开源报表来说,它的功能都是封装好的,用户不需要编码直接就能用,而且它的界面设计风格和Excel类似,兼容Excel常用的公式,稍微会点Excel就能很快上手。

而且Finereport是作为企业级的报表平台应用,所以适合公司使用。
4、数据展现层面
我上一家公司用的是SAS,可现在流行R语言来训练模型,作为数据分析工具,今年已经没有采购SAS了预算了,预算都给大数据平台产品了。
你们以为的数据展现,可能就是所有数据都处理好了,然后直接生成可视化就行,其实远不是这样,那数据变动怎么办呢?数据量太大,宕机了怎么办呢?
所以一个实时的可视化工具就显得非常重要,我觉得Tableau、PowerBI、FineBI都是一个不错的选择。
(1)Tableau
Tableau我更倾向于将他定义为数据可视化工具,而不是数据分析工具,因为tableau的数据可视化能力确实非常强,他的交互式的可视化体验在业内是被人津津乐道,但是在数据建模和数据分析功能上,略输pbi与finebi一筹。
其实我用的是Tb prep+Tb desktop,因为tableau一直以来就被数据处理能力差而诟病,prep就是千呼万唤始出来的数据清洗工具,2018年才刚刚面世,主要是为了弥补tb在数据清洗工作上的欠缺,我用过一两次,接触的不深,风格还是一贯的tb清新风格,基本可以实现数据清洗、数据整理、数据合并等etl操作,但是理论上任何产品都需要一定的生长曲线,我相信tb prep也同样是如此,未来还有更大的空间可以优化。

另外就是prep+desktop两款工具协同工作的方式,太过于麻烦,这也算是tb的一大与生俱来的缺点。
此外Tableau是国外的工具,一是服务体系不够全,出了问题要解决很久,这是不能接受的;二是价格实在是太高,动不动就上百万。
(2)FineBI
所以我推荐FineBI,一款web级的敏捷数据工具,不仅直接拖拽就能生成可视化,而且还能做复杂报表,BI报表就是企业的新方向。

其实数据展现类的工具,靠不靠谱还得看引擎,FineBI引擎的两种模式可以支持大数据量分析,这一点我是非常推崇的:
- 抽取模式:提供基于索引的高效计算引擎,通过数据预加载,支撑前端快速数据分析,适用于实时性要求不高的分析。
- 实时模式:直接对接读取企业的数据库表进行分析,适用于对实时性要求较高的数据分析场景。
可视化能力嘛,比tableau弱一点,不过好处就是简单一点,很好上手:

(3)PowerBI
首先powerbi我将其定义为适合个人多联机的数据分析与挖掘工具。
PBI可以说是微软的一次偶然尝试和偶然的产品,在tableau出现之前,微软对于数据分析领域的布局其实非常简单,只有针对企业用户的sql server analysis service和excel里的power pivot,后来微软将这两个工具进行结合,开发出了Powerbi
所以与其说powerbi是微软开发出的数据分析工具,不如说是微软依靠对BI业务模型多年的研究总结后得出的一套解决方案,也就是DAX所代表的的数据分析理念。这一点与tableau提倡的理念是相反的。
Power的数据可视化能力怎么说呢,一言难尽吧,powerbi真的有种工科风,能力强悍但是颜值不高,可视化展现能力方面,PoweBI内置的图表种类相对较少,例如一些常用的玫瑰图,多层饼图,词云图,热力地图,流向地图等都不支持(需要进行市场图表拓展下载使用).图形属性方面还算丰富,可以由用户自定义进行图表样式属性的设置调节。

最后,永远要记住,不要太过于依赖于工具,使用好工具的基础一定是你拥有扎实的知识基础,如果你连数据分析是什么?怎么做数据分析这些都不懂,那说实话,选择再好的工具也没什么用。
如果你有幸看到这里了,那么再给大家推荐一些学习数据分析的书籍和课程,都整理在这篇回答里了:
如何培养真正的数据分析思维?附实践案例
以上。
相关文章:
2023年最强大的12款数据可视化工具,值得收藏
做数据分析也有年头了,好的坏的工具都用过,推荐几个觉得很好用的,避坑必看! PS:一般比较成熟的公司里,数据分析工具不只是满足业务分析和报表制作,像我现在给我们公司选型BI工具,是做…...
LeetCode刷题系列 -- 523. 连续的子数组和
给你一个整数数组 nums 和一个整数 k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组:子数组大小 至少为 2 ,且子数组元素总和为 k 的倍数。如果存在,返回 true ;否则,返回 false 。如果存…...
LeetCode刷题系列 -- 525. 连续数组
给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。示例 1:输入: nums [0,1]输出: 2说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。示例 2:输入: nums [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数…...
JavaEE15-Spring Boot统一功能处理
目录 1.统一用户登录权限效验 1.1.最初用户登录验证 1.2.Spring AOP用户统一登录验证的问题 1.3.Spring拦截器 1.3.1.创建自定义拦截器,实现 HandlerInterceptor 接口并重写 preHandle(执行具体方法之前的预处理)方法 1.3.2.将自定义拦…...
centos7.6 设置防火墙
1、查看系统版本 cat /etc/redhat-release2、查看防火墙运行状态 systemctl status firewalld这里可以看到当前是未运行状态(inactive)。 3、关闭开机自启动防火墙 systemctl disable firewalld.service4、启动防火墙并查看状态,系统默认 22 端口是开启的。 sy…...
在线支付系列【22】微信支付实战篇之集成服务商API
有道无术,术尚可求,有术无道,止于术。 文章目录前言1. 环境搭建2. 特约商户进件3. 统一下单总结前言 在上篇文档中,我们做好了接入前准备工作,接下来使用开源框架集成服务商相关API。 一个简单的支付系统完成支付流程…...
3.2 埃尔米特转置
定义 对于复矩阵,转置又不一样,常见的操作是共轭转置,也叫埃尔米特转置Hermitian transpose。埃尔米特转置就是对矩阵先共轭,再转置,一般来说用三种符号表示埃尔米特转置: 第一种符号是AHA^HAH,…...
Python爬虫之Scrapy框架系列(13)——实战ZH小说爬取数据入MySql数据库
目录:1 数据持久化存储,写入Mysql数据库①定义结构化字段:②重新编写爬虫文件:③编写管道文件:④辅助配置(修改settings.py文件):⑤navicat创库建表:⑥ 效果如下…...
MySQL篇02-三大范式,多表查询
数据入库时,由于数据设计不合理,会存在数据重复、更新插入异常等情况, 故数据库中表的设计遵循的设计规范:三大范式1.第一范式(1NF)要求数据库的每一列都是不可分割的原子数据项,即原子性。强调的是列的原子性,即数据库中每一列的…...
vue-cli3创建Vue项目
文章目录前言一、使用vue-cli3创建项目1.检查当前vue的版本2.下载并安装Vue-cli33.使用命令行创建项目二、关于配置前言 本文讲解了如何使用vue-cli3创建属于自己的Vue项目,如果本文对你有所帮助请三连支持博主,你的支持是我更新的动力。 下面案例可供…...
Linux perf probe 的使用(三)
文章目录前言一、Dynamic Tracing二、kprobes2.1 perf kprobe 的使用2.2 kprobe Arguments3.3 tcp_sendmsg()3.3.1 Kernel: tcp_sendmsg()3.3.2 Kernel: tcp_sendmsg() with size3.3.2 Kernel: tcp_sendmsg() line number and local variable三、uprobes的使用3.1 perf uprobe …...
python GUI编程 多窗口跳转
# 多窗口跳转例子from tkinter import *def main(): # 主窗体def goto(num):root.destroy() # 关闭主窗体if num 1:one() # 进入第1个窗体elif num 2:two() # 进入第2个窗体root Tk()root.geometry(300x150600200)root.title(登录窗口)but1 Button(root, text"进入…...
nuxt 学习笔记
这里写目录标题路由跳转NuxtLinkquery参数params参数嵌套路由tab切换效果layouts 文件夹强制约定放置所有布局文件,并以插槽的形式作用在页面中1.在app.vue里面2.component 组件使用Vue < component :is"">Vuex生命周期数据请求useFetchuseAsyncDat…...
Python编程自动化办公案例(1)
作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 一.使用库讲解 1.xlrd 2.xlwt 二.主要案例 1.批量合并 模板如下…...
一站式 Elasticsearch 集群指标监控与运维管控平台
上篇文章写了一下消息运维管理平台,今天带来的是ES的监控和运维平台。目前初创企业,不像大型互联网公司,可以重复的造轮子。前期还是快速迭代试错阶段,方便拿到市场反馈,及时调整自己的战略和产品方向。让自己活下去&a…...
C# 调用Python
一、简介 IronPython 是一种在 NET 和 Mono 上实现的 Python 语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造。 Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python是…...
51单片机最强模块化封装(3)
文章目录 前言一、创建smg文件,添加smg文件路径二、smg文件编写三、模块化测试总结前言 本篇文章将带大家继续封装我们的代码。 这里我们会封装数码管的操作函数。 一、创建smg文件,添加smg文件路径 这里的操作就不过多解释了,大家自行看前面的文章即可。 51单片机模块化…...
【CSS 布局】水平垂直居中
CSS 布局-水平垂直居中 一、水平居中 创建一个父盒子,和子盒子 <div class"parent"><div class"child"></div> </div>基本样式如下 .parent {background-color: #fff; }.child {background-color: #999;width: 100p…...
【C++】类和对象--类的6个默认成员函数
目录1.类的6个默认成员函数2.构造函数2.1概念2.2特性3.析构函数3.1概念3.2特性4.拷贝构造函数4.1概念4.2特征5.赋值运算符重载5.1运算符重载5.2赋值运算符重载5.3前置和后置重载5.4流插入和流提取运算符重载6.const成员7.取地址重载和const取地址操作符重载1.类的6个默认成员函…...
常见面试题---------如何处理MQ消息丢失的问题?
如何处理MQ消息丢失的问题? RabbitMQ丢失消息分为如下几种情况: 生产者丢消息: 生产者将数据发送到RabbitMQ的时候,可能在传输过程中因为网络等问题而将数据弄丢了。 RabbitMQ自己丢消息: 如果没有开启RabbitMQ的持久化&#x…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
