excel离散度图表怎么算_一般人不知道的几个excel制图技巧

原标题:一般人不知道的几个excel制图技巧

作者:杜雨 公众号:数据小魔方(datamofang)

今天这篇,我专注于Excel的作图规则,深入的研究下Excel由数据源到可视化图表之间的关系是如何对应的,倘若你已经在工作中横跨好几种可视化工具(包括Excel),那么本文可以更好地帮助你理解Excel与其他工具的区别。

倘若你还一直局限在Excel的圈子内,那也没关系,仔细体会这一篇内容,相互比对就能体会其中深意。

Excel对宽数据和长数据的适用范围:

1、更适合宽数据

Excel的图表模块更适合宽数据(即汇总过的二维表);

在长表中,我将选中得三列全部作为簇状柱形图的数据源,默认的柱形图如下所示,虽然在横轴上也出现了两个维度信息(公司维度、日期维度),但是两个维度布局的很不友好。

2、制图心得

针对宽数据而言,Excel并不严格限定行列(允许行列自由转置),过度的自由有时候会造成制图效率的低下,所以如果能领会我接下来教给你的心得,那么你的制图效率将会提高很多。

在详细解释以上内容之前,你需要对数据结构中的基本概念有所了解,即什么叫维度、什么叫度量。

如果不那么严格的进行定义,你可以粗略的将数值型指标当做度量(并不绝对,要视实际意义而定),类别型指标视作维度。(这其实对应于统计学中的变量类别划分标准:定类变量/定序变量——维度,定距变量/定比变量——度量)

了解变量类型之后,我们可以知道,我们的源数据包含两个维度(公司、日期),一个度量(对应日期某公司的指标)。

源数据的维度之间可以自由的转置(与线性代数中的转至概念没什么差别,就是行列位置的对应调整,并不改变具体度量值,改变的只是呈现数据的方式)。

转置在Excel中有两种方式可以完成,一种是复制数据源,选择性黏贴——行列转换。

另一种则是在已经完成的默认图表选择菜单中点击行列数据变换。

我使用同一数据源的原始维度和转之后的维度分别插入了默认的簇状柱形图。结果如下。

仔细分析以上数据源与默认图表的行列对应关系你会发现,三个指标的位置在原始表格与图形化后的图表上分布及其有规律。

列标题总是对应图表中的横轴,行标题总是对应图表中的图例。而度量总是呈现在图表的纵轴(数量轴或者说Y轴)上。

这个规律是Excel图表的默认规则,当然你不必要严格执行此规则,那么不执行的后果就是,如果维度呈现的顺序不符合你的意图,你要么需要在源数据中进行数据转置,要么需要在图表的选择菜单里进行行列变化,进而转换成你中意的图表呈现形式。

所以结论就是,你的数据源组织,需符合以下要求:

1.想要对比的维度按列分布;(最终将会呈现在X轴上)

2.需要分类的维度按行分布:(最终通过图例中的颜色分类进行区分)。

3.行列虽然可以自由变换(通过数据源选择性黏贴转至或者在图表的选择菜单中进行行列变换),但一定要想清楚你的图表侧重对比那个维度,按照那个维度分类。

3、没有数据聚合功能

(原因大概是这个模块并不能识别因子变量)。

我所说的聚合是指,通过将一组分类指标(一个维度与一个度量)按照类别分开并计算各类的均值、众数、中位数、方差、标准差、求和计算等。

所以,无论你的维度里面包含多少类别,Excel图表都只会把单个观测值视作单独的指标,这是它与主流可视化工具以及编程类工具在可视化功能上的最大差别和缺憾,也是验证上述观点中:Excel图表模块专为二维表(宽数据)所设计的证据之一。

以上图示中,列是一个呈现公司维度的指标,这种维度在数据库中非常常见,可能是日期的细分维度、也可鞥是地区的细分维度。

但是Excel的默认图表将维度的单个观测全部视作唯一值,而不会对其进行任何分类聚合操作。

所以我们要想直接呈现汇总后的图表,需动用数据透析表进行维度透析,或者,将其整理成二维表制作多分类的可视化图表。

(以上操作同样适合条形图,只是条形图实质上相当于将柱形图向右旋转了90,所以条形图的行列概念与柱形图刚好颠倒过来)

4、Excel是如何识别维度指标的

这里先放四张图供大家思考:

我想大家一定看出了些猫腻,但是好像还不说不出其中的端倪。

我是这么理解的,Excel的图表模块是通过行列标题来自动探测并识别维度指标的。以上四幅图最符合我们需求的的应该是第一张图,该图完整的呈现了两个维度和度量的信息。

图二中,我们在首行首列的位置放入了一个YEAR的名称,我们理所当然的以为这个只是首列的标题而已,可是Excel并没有这么智能,它将其视作与后几列同样性质的公司维度中的一个名称。因为首列也成了一个特殊的公司(日期则成了该特殊公司的另一个维度不同水平的指标)。

所以整个图表的行维度(公司数)变成了6个,而因为没有定义列维度(原始数据中失去了行标题,其实是有的,但是因为添加了一个首行首列交叉位置的YEAR标签,结果Excel将首行作为列维度的一个分类,因而也就不存在名义上的日期维度分类)。

尽管Excel不知道丢失的维度的具体水平及名称,可是改变不了原始数据是一个二维表这样一个事实,因而还是给丢失的维度信息在图表中补全了,但是是通过默认的系列1、系列2、系列3……等方式来弥补的。

接下来看图示3:

该图的原始数据仍然是一个二维表,但是只有明确的行列维度信息(你以为你写了一组2012、2013^2016这么一组有规律的数据,Excel就能明白这是一个日期维度呀,那你真的是想多了,它跟其他的数值型指标没有任何的区别),与图2的过程类似,维度信息的丢失改变不了原始数据是二维表这样一个事实。因而Excel仍然会帮其补全行列维度(图表横轴补全了原始表列维度信息【即我们想当然以为当做行维度信息的日期和后5列指标】,图表纵轴补原始表中行维度信息,此时行为度信息已经不是我们想当然以为的那个日期指标,而是一组未知度量)。

图示4:

图示4中只明确了表格中列维度信息,而没有声明行维度信息,因为不存在错误识别,该状况下,Excel可以很完美的识别列维度(呈现在图表的横轴上)。而丢失的行维度信息则自动补全(呈现在图例的分类颜色指标上)。

综上所示,Excel识别维度信息是通过原始二维表表结构中的首行首列标签来识别的(切记不要在首行首列中写入任何信息,一定要留白、一定要留白、一定要留白)。

倘若不慎将首行首列(即行列维度标签的交叉单元格)标签交叉位置写入任何内容,那么结果是致命性的,你的列为度(也就是图表的横轴上)会被加入一个虚假的维度类别指标。

5、关于作图效率

以下是分别在Excel中制作多分类序列图表和其他软件工具(包含桌面端可视化工具以及编程工具等)所分别适用的数据源。

从效率上来说,自然是其他工具所使用的数据源(即一维表或者说长数据)效率更高一些,Excel将每一个分类都视作一个列字段(典型二维表风格),其他的工具是通过将分类序列进行堆栈操作,聚合成一个包含类别变量(因子变量)和一个度量(数值型变量)从而大大简化了数据源,这在分类特别特别多的时候具有很大的优势。(想象一下如果有一千个分类,你难倒要在Excel里面列出1001个列字段吗,使用二维表仍然是三个字段,公司名称、日期,指标)。

现在你应该明白Excel为啥无法胜任大数据可视化了吧,出了本身性能的限制之外,更重要的是她的作图理念,本就不是为大数据而生的。

当然 也不能说Excel这种二维表作图一无是处,二维表直观易懂,其本身就兼具图形化的信息呈现功能,否则为什么很多专业的报告中除了图表之外,包含很多表格呢,而一维表这种篇原始(但是易于存储)结构的数据应该不会常用于报告中。

所以说对于小数据或者二维表而言,Excel的图表工具还是非常适于此种可视化场景,而要是将二维表用于其他可视化工具来进行可视化(可视化桌面端工具或者编程工具),则你需要额外进行数据的长宽转换。

(关于数据长宽转换以及多维数据集在不同可视化工具中的最优可视化解决方案,我会专门列一篇进行分析讲解)

以上关于行列维度的分析并不适用于呈现连续性数据的图表类型(如直方图、散点图、气泡图等),原因很简单,如果图表的二维坐标系中都呈现连续性指标,那么也就无所谓维度了,维度是针对分类资料所定义的一种特殊指标,连续性指标也就只剩下度量指标啦。

事实上Excel除了为二维表作图而生之外,还是转门为分类数据可视化而生的(可能我说的比较绝对了,大家不要喷我),为什么的,原因有两个:

1、Excel的现存图表库中绝大多数图表是适应分类数据作图,(只要一个轴支持分类数据即可算作离散数据可视化类型,而真正用于连续性数据可视化呈现的图表类型及其少,比如散点图【你会发现Excel的散点图也是支持类别变量的】、气泡图、直方图【直方图以往都是在数据分析库模块中,需要单独调用才能使用,近期才加入普通图表的菜单入口】)。

2、普通的业务分析场景下,更多的是不同维度间的交叉对比和汇总分析,而连续数据的可视化多用于预测与建模,这在学术研究中(时间序列数据的建模)以及企业的战略数据挖掘部门(市场拓展与销售预测等)使用场景比较多,而且数据量一般都大。(这也决定了Excel使用的局限性,即更适合客观呈现、适合分类资料的汇总可视化,不适合用于大数据量的挖掘呈现)。

当然我还有一个证据在证明我以上的看法,那就是最近两年微软公司尽心尽力培育的PowerBI商务智能系统,在数据源上完美支持主流数据库,可视化形式上使用一维表进行操作,在数据量上也大大突破了Excel所能承受的量级。这或许就是当前大数据如火如荼的形势下,微软的office系统显然已经无法支撑大数据下的分析与可视化需求,必须布局其自己的大数据分析与可视化系统。

近期精彩文章分享:返回搜狐,查看更多

责任编辑:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

listview控件在php的使用方法,Android_Android编程之控件ListView使用方法,本文实例讲述了Android编程之控 - phpStudy...

Android编程之控件ListView使用方法本文实例讲述了Android编程之控件ListView使用方法。分享给大家供大家参考。具体分析如下:控件ListView是一个重要的控件,可以被用作用户列表等显示,下面进行它的操作测试。下面代码实现了生成了一个ListVi…

使用ElasticSearch进行近实时索引

选择索引策略很困难。 Elasticsearch 文档的确有一些一般性建议 ,并且有其他公司的 一些技巧 ,但这也取决于特定的用例。 在典型情况下,您有一个数据库作为事实的来源,并且有一个使事物可搜索的索引。 您可以采用以下策略&#xf…

air什么意思中文_Air 的中文意思是什么?

展开全部air释义:(1)作为名词,空气;32313133353236313431303231363533e59b9ee7ad9431333431366261天空;(飞行的)空中。(2)作为动词,晾;晾干;(使)通风;公开发表。读音:英[…

python xlutils函数,python3:xlrd、xlwt、xlutils处理excel文件

1.xlrd读取excel请参考上篇博客https://www.cnblogs.com/shapeL/p/9075843.html2.xlwt生成excel安装下载:pip install xlwt导入:import xlwt参考:生成excel文件test1.xlsfile_name ../dataconfig/test1.xlswbk xlwt.Workbook() #初始化work…

前端实现炫酷动效_20个网页动效设计的炫酷神器

如今很多 UI 设计师不是正在做动效,就正在学着做动效。动效现在已经无处不在了。有的动效可能是一个微妙的悬停效果,使用 Bttn.css 或者是 Hover Buttons 的帮助下,添加到按钮上,有的则可能是使用引人瞩目的动态渐变背景抓住用户的…

php7设置最大连接数,sybase 15.7 修改 number of user connections 最大连接数

sp_configure number of user connectionssp_configure number of user connections,200修改Sybase最大连接数的方法有两种,如下:一、 进Sybase central, 鼠标右键选择数据库服务器(要处理的服务器),然后选择右键菜单中的配置选项&#xff0c…

jsr303 自定义消息_JSR 303从I18N属性文件加载消息

jsr303 自定义消息总览 本文将说明如何适应JSR 303验证API来从I18n属性文件加载消息,并通过保留国际化的所有好处和对多种语言的支持来实现这一点。 为此,我们将实现一个基于Spring API的自定义MessageInterpolator,用于管理I18N消息。 依存…

最优隐神经元数目 算法 matlab,BP算法的改进在Matlab的实现研究

BP 算法的改进在M a tlab 的实现研究姚文俊(中南民族大学电子信息工程学院 湖北武汉 430074)摘 要:利用M atlab 中的神经网络工具箱提供的丰富网络学习和训练函数,对BP 网络和BP 算法的优化方案进行仿真,得到较优的BP 算法。关键词:人工神经网络;BP 网络;M atlab ;N eu ral …

php 导出excel分段导出_PHP 导出excel 数据量大时

public functionceshiexcel1(){set_time_limit(0);$filename 病毒日志;header(Content-Type: application/vnd.ms-excel);header(Content-Disposition: attachment;filename".$filename..csv");header(Cache-Control: max-age0);//原生链接mysql//数据库配置$mysql_…

通过Apache Kafka集成流式传输大数据

从实时实时过滤和处理大量数据,到将日志数据和度量数据记录到不同来源的集中处理程序中,Apache Kafka日益集成到各种系统和解决方案中。 使用CData Sync ,可以轻松地将此类解决方案应用于任何CRM,ERP或Analytics软件。 配置Apach…

php7 获取数据流,stream_socket_accept()

stream_socket_accept()(PHP 5, PHP 7)接受由stream_socket_server()创建的套接字连接说明stream_socket_accept(resource$server_socket[,float$timeout ini_get("default_socket_timeout")[,string&$peername]]):resource接受由stream_socket_server()创建的套…

浪潮as5300技术方案_浪潮智能存储AS5300G2双活解决方案

智慧医疗已成为提高就医效率、减少医疗差错的有效科技手段。江西省泰和中医院通过采用浪潮智能存储AS5300G2双活解决方案,构筑了一个满足医院数字化、信息化、智能化、可持续发展的信息支撑系统平台,使业务数据有保障、资源调配共享更高效、运维管理更方…

安卓php推送消息机制,深入剖析Android消息机制原理

在Android中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易、更好地架构系统,避免一些低级的错误。在学习Android中消息机制之前,我们先了解与消息有关的…

python单元测试mock_Mock 在 Python 单元测试中的使用

本文讲述的是 Python 中 Mock 的使用。如何执行单元测试而不用考验你的耐心很多时候,我们编写的软件会直接与那些被标记为“垃圾”的服务交互。用外行人的话说:服务对我们的应用程序很重要,但是我们想要的是交互,而不是那些不想要…

php bin2hex(),PHP bin2hex() 函数 pack() 函数

bin2hex() 函数bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。字符串可通过使用 pack() 函数再转换回去。语法bin2hex(string)string必需。要转换的字符串。示例一把 "Shanghai" 转换为十六进制值$str bin2hex("Shanghai");echo($str); // 53686…

java 泛型示例_使用Java泛型的模板方法模式示例

java 泛型示例如果您发现除了某些部分外,您的许多例程完全相同,那么您可能需要考虑使用Template Method来消除容易出错的代码重复 。 这是一个示例:下面是两个做类似事情的类: 实例化并初始化Reader以从CSV文件读取。 阅读每一行…

vue如何使浏览器url固定_怎么给 vue的 vue-router url地址最后加上 / 斜杠

这样没用 - -应该需要怎么加?router.beforeEach((to, from, next) > {if (!checkJs.getCookie(token) && to.path ! / && to.path ! /resetpassword) {next(/);} else if (checkJs.getCookie(token) && from.path /login || checkJs.ge…

oracle dbstart,dbstart: 未找到命令

oracle 12c在centos最小化下安装后,数据库不随机启动,按照网上的教程,编辑了/etc/oratab文件增加了rc.local文件结果还是不随机启动,通过:systemctl status rc-local.service可以看到服务启动失败,提示如标…

确定Java等价性的新时代?

几个月前,我读了一篇题为“确定Java等价性的新时代?”的博客文章。 这在某种程度上与我当时在我那令人脚的副项目Java :: Geci中开发的内容非常吻合 。 我建议您暂停阅读,阅读原始文章,然后再返回此处,即使您知道一定比…

oracle数据modeling分类,由浅入深 NoSQL的五种主流数据模型

【IT168 技术】本文内容是对《NoSQL Data Modeling Techniques》一文的简单概述,原文对NoSQL的几种数据模型进行了详细深入的讨论。是了解NoSQL数据模型不过错过的全面资料。NoSQL的一些非功能性的特性,比如扩展性、性能以及一致性的讨论,目前…