matlab堆积式玫瑰图,[转帖]堆积式南丁格尔玫瑰图模板
[转帖]堆积式南丁格尔玫瑰图模板
堆积式南丁格尔玫瑰图模板( Nightingale Rose Diagram)
在不等半径扇形图(南丁格尔玫瑰图)日志中,引用了一个比较facebook和twitter的信息图表,很多人询问如何制作。该图是具有堆积特征的玫瑰图,用该日志思路就可以制作出来,只是需要多准备一些数据系列。
我制作了一个模板文件,填入数据即可获得精美的堆积式玫瑰图,本篇日志即介绍这个模板的构建方法。写这篇日志的时候发现,做这个图还算容易,但要把作图原理和步骤描述清楚却真不容易,欢迎大家多提宝贵意见。
【作图思路】
还是使用雷达图来制作,每个扇区的每个堆积部分都是一个雷达图序列。
有人可能会问,雷达图不是多边形的吗,怎么能做成扇形图呢?我们可以这样想,当年祖冲之是怎么求圆周率的?对了,就是用多边形逼近圆形的。现在我们也是用多边形来逼近圆形,只要数据点足够,多边形就变成了圆形。也不要太多,360个点就足够了。
【作图步骤】
1、组织作图数据。
本例的作图难度并不大,关键在于作图数据的组织,其中不乏精巧之处。建议打开模板文件对照阅读。
假设有12个维度的数据,每个维度有不同的分类数,相关数据输入在B6:N20区域。不同维度的分类数可不相同,如性别只有男女2类,收入则可分为6个档次。
雷达图不支持堆积形式,必须自己先对数据进行“堆积”转换。将分项数据转换为逐步累加的累计值,这样某项图形高出前一图形的部分,正好与该项的值对应。
考虑到扇形图中心部分比较小,不便于观察比较,可以在中心留下一个圆心,从圆心外围开始比较数据。因此在转换之前,我们设置一个圆心参数C26,可以自由控制是否需要绘制圆心,以及绘制多大的圆心。
转换区域的公式为:
C29:=IF(C15=0,0,SUM(C$15:C15)+$C$26),注意堆积数据加上了圆心半径参数。复制到整个转换区域C29:M34。
对第N列的维度12,因为可能要用来绘制圆心,需要做特殊处理:
N29:=IF($C$26=0,IF(N15=0,0,SUM(N$15:N15)+$C$26),C26)
N30:=IF($C$26=0,IF(N15=0,0,SUM(N$15:N16)+$C$26),0),复制到N34。
也就是在需要绘制圆心时,N29指定为圆心半径,N30:N34指定为0,否则均同前按普通扇区处理。
第36~38行放每个扇区的角度数,起、止角度。可通过这里控制玫瑰图的扇区数,也就是前面维度的个数。甚至还可以通过这里控制做弧度不等的玫瑰图。
现在准备作图数据。数据比较多,可选择另外一个工作表展开。
第5、6行放对维度和分项的索引编号,便于后续引用。共12*6列。
注意第6行的索引编号方法,是逆序的6、5、4、3、2、1。这是因为图表里后面的序列会遮盖住前面的序列,这里将分项的索引号逆序编排,以使同一维度上的多个堆积序列,图形上半径长的在“后面”,半径小的在“前面”,避免相互遮挡。
第8、9行放每个堆积扇区的起止角度数据,根据第5、6行的索引编号引用转换过来:
C8:=INDEX(Data!$C$37:$N$37,作图数据!C5),向右复制。
C9:=INDEX(Data!$C$38:$N$38,作图数据!C5),向右复制。
第11行放每个堆积扇区的半径,也是根据第5、6行的索引编号引用转换过来:
C11:=INDEX(Data!$C$29:$N$34,作图数据!C6,作图数据!C5),向右复制。
从B14往下填充序列1~360,作为图表数据点的判断依据。从C13开始往右填充公式:C13:="f"&C5&C6,作为各序列的名称。
整个C14:BV373区域为作图数据源,共360行*12*6列,输入公式为:
C14:=IF(AND($B14>C$8,$B14
2、用整个360*12*6的数据区域做填充型雷达图。
此时得到的图表黑乎乎的看不清,清除数据标签和数值轴,即可看到堆积玫瑰图的雏形。
3、对图表进行格式化。
根据需要,对各扇区进行颜色填充。若是使用2007以上版本,格式化出老外例图的样式完全没有鸭梨。
4、手工添加标签数据等信息。可使用文本框、链接或拍照等方式。
本例中使用了C36:N36的数据加入图表做饼图,以显示圆形的灰色底衬,以及外围的维度名称标签,有兴趣者自行研究,这里不再细述。
OK,一份堆积式玫瑰图完成了。
此前日志的单层玫瑰图,其实可以看做是这个堆积式的简化形式,就是分类项目只有1个而已。因此本模板也可以取代前一日志的模板。
【模板使用】
本模型设计已经比较完善,现在要做一个玫瑰图,你只需填入数据,调整相关参数,即可自动得到一份精美的堆积式玫瑰图。可适用于Excel2003/2007/2010。使用步骤:
1、在B6:N20填入相关原始数据。模板支持12个维度,多出的可以填0。不足的可以自行扩展,需要了解整个模型的原理。不过太多就不好了。
2、若需要绘制圆心,在C26处填入参数,建议是30%。不需要圆心则填0。
3、根据维度的个数,也就是需要绘制扇区的个数,设置C36处的扇区角度参数。
4、得到玫瑰图,检查其正确性,添加数据标签等信息,完成。
上图即是利用此模板,仿制的那个facebook分析的图表。是不是比原图还要漂亮,相信这是在Excel中完成的吗:)
【注意事项】
堆积玫瑰图的优缺点和适用场合:
优点:可在一个图表中集中反映多个维度方面的百分比构成数据,幅面小,信息量大,形式新颖,吸引注意力,够高级,够给力:)
缺点:非常见图表形式,多数人不易看懂。图形存在误导因素,同样的半径长度,越往外面积越大,但实际是以长度代表数值。
适用场合:适合书面研读,不太适合PPT讲解。适合商业杂志、财经报刊等媒体做信息图表用途,传统工作场合需慎用,可能会给人用力过猛、炫技、夸张的感觉。
制作难度:★★★★★
实用性:★★★
知识管理 知识转换
matlab堆积式玫瑰图,[转帖]堆积式南丁格尔玫瑰图模板相关推荐
- 为敬畏生命而生—南丁格尔玫瑰图制作
长得像饼图又不是饼图,长得像堆积簇状图又非簇状图,这种有着极坐标的怪异统计图,有着一个美丽的名字-南丁格尔玫瑰图. 说到南丁格尔玫瑰图,这里有着一段为敬畏生命而存的历史. 19世纪50年代,英国.法国 ...
- python+matplotlib绘制南丁格尔玫瑰图
实验:绘制南丁格尔玫瑰图 本实验有一定难度,有人说matplotlib绘图和matlab大同小异,我看除了一些函数名相同之外,其他的像参数和使用方法很不一样.另外我不知道是不是在matlab中画玫 ...
- tableau实战系列(三十九)-教你如何优雅的做图表展示-南丁格尔玫瑰图
前言 饼图是常用的分析图表之一,但当分析的数据类别过多时,饼图就会因为分区密集,大大降低其可视化效果(如下图). 遇到这种情况,可以考虑使用南丁格尔玫瑰图.事实上,它的可视化呈现很不错. 如果觉得玫瑰 ...
- 26.27.28.29.极区图(南丁格尔玫瑰图)、维恩图 (Venn diagram)、面状图(Area chart)、树地图
26.极区图(南丁格尔玫瑰图) 27.维恩图 (Venn diagram) 28.面状图(Area chart) 29.树地图 26.极区图(南丁格尔玫瑰图) 极区图(又名南丁格尔玫瑰图)呈放射延伸状 ...
- Python数据可视化之南丁格尔玫瑰图(亲测)
文章目录 1. 什么是南丁格尔玫瑰图 2. 南丁格尔玫瑰图的绘制 1. 什么是南丁格尔玫瑰图 央视新闻用来展示疫情0增长天数的图就是南丁格尔玫瑰图. 南丁格尔玫瑰图(Nightingale rose ...
- python画玫瑰图_央视都在用的“南丁格尔玫瑰图”,原来Python也可以画
前一阵子,我看到央视新闻中,有一张比较好看数据图,如下: 后来才知道这叫"南丁格尔玫瑰图",是南丁格尔护士在克里米亚战争期间提交的一份关于士兵死伤报告时发明的一种图表. 我心想能不 ...
- staruml顺序图生成协作图_一个工具箱 之 南丁格尔玫瑰图生成器
南丁格尔玫瑰图是一种圆形的直方图,由弗罗伦斯·南丁格尔所发明,又名为极区图.出于对资料统计的结果会不受人重视的忧虑,她发展出一种色彩缤纷的图表形式,让数据能够更加让人印象深刻. 南丁格尔玫瑰图将柱图转 ...
- excel实战应用案例100讲(五)-excel实现南丁格尔玫瑰图制作
"提灯女神"南丁格尔 今天故事的主人公,是被誉为"护理事业的创始人和现代护理教育的奠基人"的弗洛伦斯·南丁格尔(Florence Nightingale). 读 ...
- Python数据可视化之南丁格尔玫瑰图
文章目录 1. 什么是南丁格尔玫瑰图 2. 南丁格尔玫瑰图的绘制 1. 什么是南丁格尔玫瑰图 央视新闻用来展示疫情0增长天数的图就是南丁格尔玫瑰图. 南丁格尔玫瑰图(Nightingale rose ...
- R语言-南丁格尔玫瑰图
简介 南丁格尔玫瑰图(Nightingale rose chart)即极坐标柱形图,是一种圆形的柱形图.由弗罗伦斯-南丁格尔所发明,普通柱形图的坐标系是直角坐标系,而南丁格尔玫瑰图的坐标系是极坐标系. ...
最新文章
- python 获取你电脑纯文本文档内容!解决IndentationError: expected an indented block报错!
- EasyUI权限系统
- MySQL第5天:MySQL的架构介绍之主要配置文件
- setTimeout延时0毫秒的作用
- tkinter frame背景色_Tkinter教程-基础组件(三)
- PHP5各个版本的新功能和新特性总结(转载 http://www.jb51.net/article/48150.htm)
- python线程安全的单例_详解python实现线程安全的单例模式
- html中css如何引用自定义字体 - 案例篇
- PyCharm编辑界面提示
- 平板直撑的腰椎问题(塌腰)
- 企业玩TikTok的三种方式
- 华为 AP 3010 SSH 配置
- Javascript使用技巧-提高工作效率
- Facebook 开源 React Native - iOS移动开发周报
- php卡盟主站_php卡盟
- 高并发 多线程批量ping工具 nbping简介和使用
- 七大工业机器人仿真软件,你知道哪些呢?
- logo字体设计心法
- UINO优锘:面向架构管理的可视化
- Springboot:JWT