`
coolstars
  • 浏览: 39284 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java报表技术设计讨论:双Y轴的是与非

阅读更多

 

 

双Y轴的图表经常被很多BI或者报表厂家当成一个高级的功能。进而引导用户感到如果有两组数值在一个图表上同时显示,用两个Y轴来控制数据的位置是一个最佳的方案。但是其实在可视化的领域,对双Y轴的使用一直有很大的争议。大部分的观点是双Y轴的使用往往弊大于利。我们在此来对这个问题做一个大致的分析,看看双Y轴是不是真正需要。

 

把两组数据同时在一个图表上显示,自然是因为需要对它们进行有效比较。但这样可能会遇到两种问题。第一,如果两组数据的单位不同,那用一个Y轴来代表这两个不同的概念无疑会让读者困惑。比如我们把盈利和折扣率放在一个图表上,一个是绝对值,另一个是百分比。用一个轴来代表在概念上就完全错误了。

 

就算两组数据使用的是同样单位,但如果它们的值的区间差别很大,用同一个轴达到的效果往往是一直数据把难以组数据压缩到不能分辨的地步。比如营业额和盈利,可能是10比1的关系。把它们放到一起,营业额会决定Y轴的区间,盈利就会被压缩成基本一条直线。

 

下面是一个图表显示了销售额和网站访客数量的数据。因为数据间大小的巨大区别,访客数据基本上没有能够显示出任何有用的信息。

 

 


双轴的解决方案是把第二组数据使用第二个Y轴。在下图里,左面的Y轴只对应销售额。访客量是通过右边新加的第二个Y轴来定位。

 



 第二个轴的增加,无疑解决了初始的问题。两组数据不再互相影响。它们分别使用了和它们最匹配的尺度。但两个轴的使用也带来来新的问题。其中最明显的是轴与数据间对应的模糊性。当你在看图表中的数据点时,首先需要判断它对应的是左轴还是右轴。这样就把图表的易用性明显降低。

 

我们在上图里采取了一些改进的措施。为了便于读者克服上面提到的困难,两个轴的颜色被分别设成了和数据图形一样的颜色。这样在一定程度上降低了数据和Y轴对应的难度。

 

我们继续来看看还有没有其它的解决方案。如果你使用的软件支持,有一种选择是把两组数据分别画在自己的图表,但把这两个图表并列排放,同时把相同的坐标轴共用。这样数据之间互不影响,读者也可以很好的比较数据的趋势。这个方案比起双轴还有不局限于两组数据的好处。

 

下图是用StyleScope对同样数据做的并列图表。




 
如果我们进一步分析双轴图表的需求,我们可以得出以下结论:
 
双轴图不能比较不同组数据之间的绝对值。因为它们是用的不同单位和刻度,不具可比性。唯一能够比较的是数据变化的趋势。因为把两组数据同时放在一个图上,我们可以比较它们变化的速度。但事实是否如此呢?我们来回顾一下双轴图的效果。

 



 从这个图里,我们能够判断出销售额和访客数变化的关系吗?两组数据都在增长,但总体哪一组增长的速度更快?快多少?这些都并没有很清晰的回答。

 

Steve Few对这个问题有一个很好的建议。最好的方法来回答这个问题是不画数据的绝对值,而是画出数据变化的百分比。这样不仅直接地表达了数据的变化率,不需要用户再来估算。同时又避免了使用两个Y轴的需要。因为所有的数据都变成了百分比,我们可以用同一个轴画任意多个数据组。

 



我们对比一下新的图表的效果。因为数据变化比直接被画了出来,我们不但可以马上看到访客数的增长大于营业额,我们甚至可以比较准确的找到差别的具体百分数。

 

 可以说,双轴的图表在绝大部分情况下是不需要的。它在解决一个问题的同时,也带来了自己新的问题。如果我们更好地分析需求,往往可以找到更好的方案。

 

  • 大小: 11.6 KB
  • 大小: 11.4 KB
  • 大小: 14.1 KB
  • 大小: 11.4 KB
  • 大小: 14.8 KB
分享到:
评论

相关推荐

    java swing管理系统源码 程序 代码 图形界面(11套).zip

    - BoxLayout:盒式布局,沿X轴或Y轴线性排列组件。 - GridBagLayout:网格包布局,最灵活的布局,允许自定义组件大小和位置。 3. **事件处理** Java Swing使用事件监听器模型处理用户交互。例如,为按钮添加...

    Highcharts图形报表以及jar

    数据项通常包含x轴和y轴的值,以及其他可能的属性,如颜色、标记形状等。 4. **自定义选项**:Highcharts提供了大量的配置选项,允许开发者调整图表的各个方面,如颜色、样式、轴标签、图例、标题、数据列样式、...

    2021-2022计算机二级等级考试试题及答案No.399.docx

    - 屏幕坐标系统通常以左上角为原点,向右为X轴正方向,向下为Y轴正方向。 #### Java中的双精度类型 Java中的双精度类型(double)占用8个字节(64位)。 **知识点解析**: - double类型提供了更高的精度,适用于...

    2021-2022计算机二级等级考试试题及答案No.1392.docx

    这意味着X轴向右增加,Y轴向下增加。 - **单位**:屏幕坐标通常以像素为单位,这是构成显示器图像的基本单位。 - **应用场景**:坐标系的概念在绘制图形、移动组件或定位窗口元素时非常有用。 ### 2. PowerPoint ...

    jFreeChart入门篇

    JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图、散点图、甘特图等,常用于数据分析、报表生成以及可视化展示。本文将深入浅出地介绍JFreeChart的基本使用和核心...

    jfreechart 和jsp 结合折线图的一个例子

    这种技术广泛应用于数据分析、监控系统和业务报表等场景,使非技术人员也能直观理解复杂的数据信息。 通过阅读给出的博文链接(https://leequer.iteye.com/blog/509360),你可以找到更具体的实现细节和示例代码,...

    JfreeChart 应用详解 例子

    "Y轴标签", // Y轴标签 dataset); // 数据集 ``` `CategoryDataset` 是 JFreeChart 提供的数据模型,用于存储图表数据。 3. **自定义图表** JFreeChart 提供了丰富的自定义选项,你可以调整颜色、字体、图例、...

    易语言程序免安装版下载

    修改集成开发环境,自动记忆非独立编译时是否写出依赖文件的选项。 6. 大幅提高编译速度。 对其它支持库的更新: 1. 修改高级表格支持库,在双击单元格进入编辑状态后,不能收到第一个“字符输入”事件的BUG。 ...

Global site tag (gtag.js) - Google Analytics