小编又搞来一批新鲜出炉的可视化,与上一次不同,这次多数是更贴合实际应用的高级图表,都是由我们的开发者开发应用于FineReport的。
桑基图是一种能量分流图,常用用于能源、材料成分、金融等数据的可视化分析。在桑基图爱好者社区网站上写着这样一句话:“A Sankey diagram says more than 1000 pie charts”,意思是一张桑基图比一千张饼图描述的东西更丰富。
桑基图的应用很小众,并不广泛。但看似复杂的桑基图其实使用起来非常简单高效,譬如上面的能量流动图,图中延伸的分支的宽度对应数据流量的大小。
桑基图的特点如下:
1.起始流量和结束流量相同,所有主支宽度的总和与所有分出去的分支宽度总和相等,保持能量的平衡;
2.在内部,不同的线条代表了不同的流量分流情况,它的宽度成比例地显示此分支占有的流量;
3.节点不同的宽度代表了特定状态下的流量大小。
桑基图由流量、节点、边构成,适合节点数据集(可选),边数据集。数据权重映射到节点和边的宽度。桑基图需要保持能量守恒,不能在中间过程创造出流量,流失(损耗)的流量应流向表示损耗的节点。
桑基图插件在FineReport大屏中的效果展示:
平行坐标图是一种用来呈现多变量,或者高纬度数据的可视化技术,用它可以很好的呈现多个变量之间的关系。虽然其中大量的线段最初看起来令人费解,但它们是理解多维数值数据集的一个非常强大的工具。
通常描述平行坐标的方法是讨论高维空间,以及这种技术如何平行地布置坐标轴而不是相互正交。下面是具体的数据表。表中详细描述了从1970到1982年间发布的汽车型号,包括它们的里程数(加仑)、气缸数、马力、重量以及它们被生产的年份等等。
现在想象一下,每一列都映射到上面图像中的垂直轴上。每一个数据值都会沿着直线的某个地方结束,缩放到位于底部的最小值和顶部的最大值之间。然而,纯集合的点不会非常有用,因此属于同一记录(行)的点与行连接,这就产生了平行线的特征混杂。
通过查看这个可视化,我们可以了解很多信息。气缸之所以突出,是因为它只有几个不同的值。气缸的数目只能是一个整数,这里不超过八个,所以所有的行都必须经过一个小的点。这样的数据和分类数据通常不适合平行坐标。但如果是一个或两个,这不是问题。
在每加仑汽油能行驶的英里数MPG和气缸之间,你可以看出,八缸汽车相对于六和四缸的一般有较低的里程。如果跟着线看它们是如何交叉的,可以发现很多交叉线是反向关系的标志,图形显示出这样的规律:越多的气缸,越低的里程。
汽缸和马力之间的相关性更为直接:汽缸越多就意味着更多的马力。当然,这里也有一些交叉线,所以更多的气缸并不总是意味着更多的能量,但总的趋势显然是存在的。在马力和重量之间,情况是相似的:马力越大一般意味着车越重,但当然也有一些价值的分散。还有一个例外,一个高马力八缸汽车是非常轻的。仔细找一找可以发现那个离群值。
最后,重量和年份之间的线交叉很多,这表明多年来汽车变得更轻了。你也可以很容易地看出,年轴只记录了少量不同的数值,类似于气缸。虽然这是一个非常简单的示例,但它显示了大多数数据集中的典型结构。
平行坐标可以做筛选互动。平行坐标系中的主坐标称为“刷”,看下面的图像应该很明显。为了做到这一点,我们来看看所有的轴。在这里,我们在年轴上刷了1980年到1982年的区间。结果是线条的一部分被刷成了黑色,其余部分仍然以灰色为背景。
在FineReport中,我们的开发者大江东通过封装某著名开源图表库,开发了支持基本平行坐标图与地图或散布矩阵的组合图。
平行坐标图插件在FineReport中的效果展示:
标准的、非均匀的马赛克图在现实生活中使用较少,多用于统计学领域,常用于SAS的某些模块。均匀的马赛克图在生活中常有应用,比较经典的例子是地铁站与站之间的票价图。
标准的马赛克图关注的数据维度非常多,一般的用户很难直观的理解。一般情况下,推荐使用均匀的马赛克图,对于非均匀的马赛克图,多数情况下可以拆解成多个不同的图表。
坐标轴均匀的马赛克图也是统计学领域标准的马赛克图,一个均匀的马赛克图包含以下构成元素:均匀的分类坐标轴、颜色均有含义的矩形块和图例。
从数据上看,均匀的马赛克图和热力图在连续数据上的含义非常相似,可以近似的理解相应的使用场景。但热力图表示第三维度的颜色是线性变化的,马赛克图表示第三维度的颜色是分类的。标准热力图要经过平滑算法,没有明显的边界,而马赛克图拥有清晰的边界。
Martin Theus在他的数据分析文章《理解基于区域的图表:马赛克图》中开宗明义的写道:马赛克图是分类数据显示的瑞士军刀。而条形图则停留在单变量的极限中,马赛克图及其变体充分展示了对多元分类数据的强大可视化能力。
关系类的图表通常用可视化的方法显示数据之间相互关系,使用图形的嵌套和位置表示数据之间的关系,通常用于表示数据之间的前后顺序、父子关系以及相关性。
常见的桑基图、韦恩图都算作是关系图的一种表现形式。
我们的开发者smile通过整合国内著名的商用开源图表库,使得在“环形布局“之外,关系图插件支持了多种关系类的布局,例如关系数据与笛卡尔坐标系相结合,关系数据的力引导布局,以及与日历图相结合的关系数据,并且支持不同的交互动画和特效。
地图圈选是一个特效,形象解释,就是用鼠标画个圈圈就能看到对应的数据图表。插件开发者行舟通过封装国内著名的商用图表库,为FineReport开发了普通的散点标记地图和条形图的结合图。
首先我们只需要按照传统的标记地图,为特殊选择地图配置点的名称、数值和位置数据。插件已经内置有中国主要城市的坐标,所以添加城市标记的时候,不需要单独定义坐标经纬度位置。
样式面板中支持引用fr内置的json地图数据,分为世界地图、中国地图和各省地图,方便各种场景下的使用。
重点来了哈,预览的时候,可以点击右上角的十字选择、自由选择、保持选择、清除等按钮,在地图区域标记显示。
以上的可视化插件都是由帆软开发者团队成员开发,都源自自行开发或者一部分开源库,作为插件应用于FineReport的可视化图表和动效中。而FineReport是商用的数据报表工具,相关介绍:
你用过Excel,却不知还有一款神器“FineReport”
这款效率远超Excel的表格工具,没用过就可惜了!
如果你是我们客户,有需求,想要定制FineReport插件;或者是感兴趣的个人开发者,想业余接项目,都可以参与到帆软的开发生态中来。