zoukankan      html  css  js  c++  java
  • 应用图表进行可视化时,如何有效地展现数据?

    欢迎访问网易云社区,了解更多网易技术产品运营经验。


    大部分人对数据进行可视化时,只是一种图表的堆砌,先把需要的单个图表做完,然后简单地罗列组合在一起,最后改变一下整体颜色,就完成了。整个过程虽然不能说错,但并没有把图表的优势发挥出来。下面分享一些用图表展现数据的方法,希望对题主有所帮助。


    选择图表


    明确需要表达的信息和主题后,需要根据这个信息的数据关系,决定选择何种图表类型,以及要对图表作何种特别处理。
    图表种类各式各样,有些图表很难界定是属于哪种关系,我见过讲图表关系和图表功能比较好的平台是Ant v的墨者学院,有兴趣的小伙伴可以了解一下。



    Ant v把数据关系分成了9个大类,当你确定了某个数据关系类型后,就可以根据该数据的使用场景查找出相对应的图表和使用建议,并在其中进行选择。
    以一份购物城数据为例:



    制作图表

    当确定了要使用哪些图表做图后,开始进入制作流程,影响最终图表展现效果的元素一般分为两个层面:

    非数据层:

    不受数据影响样式的元素,比如说背景、网格线、外边框等等。这类元素起到的是辅助阅读作用,但如果不加处理全部放出,视觉上会显得杂乱和不够简洁,干扰到你真正想展示的信息。对于这类元素,应该尽量隐藏和弱化。

    隐藏
    · 去除不必要的背景填充
    · 去掉无意义的颜色变化
    · 去掉不必要的外框

    弱化
    · 坐标轴淡色或隐藏
    · 网格线淡色或隐藏


    数据层:
    受数据影响样式的元素,比如说柱状图的柱条长度,柱条颜色,柱条展示个数,气泡图气泡大小等等,这类元素的展示效果和图表本身的数据息息相关,一旦图表本身的数据比较极端,有可能会使得最终视觉展现不尽如人意,我们无法改变具体的数据,是否就完全无法操控这些元素了呢?
    这里挑选了几个大屏中应用较多的图表,总结了其数据层样式的调整方式。


    调整范围
    · 截断超大值
    当某一个值特别大时,绘制出的条形远远长于其他类别,导致其他条形被压缩,不便于比较。某条特别长,也可能会影响到整个大屏的排版平衡,可以采用截断选项的方式。


    · 数据可以不从0开始
    很多数据可视化工具里都有“数轴是否包括零”这一个选项,用户可通过这个功能来控制坐标轴的显示范围,例如下图,折线的波动范围比较小,走势起伏不明显,这时可以选择数据不从零开始,清晰地看出了折线的走势情况。当然,如果在平时的数据报告中,这样显示有夸大差异的嫌疑,不建议频繁使用。


    避免重叠

    · 避免负值被遮盖
    当一些数值有负数时,标签和柱条离得较远,不便于阅读,如果标签紧贴柱条,又会发生重叠,比较好的方式是标签根据柱条的方向分别显示在坐标轴的两侧。


    · 轴标签太长可横向放置
    当轴标签太长时,虽然斜放可以避免重叠,但歪着头查看内容在浏览大屏的场景下对用户不是很友好,可以考虑把柱条横向放置,把标签置于柱条空隙之间。



    精简数据项

    · 饼图分类5~7项
    在做数据报告时,不管有多少数据项,为了完整和精确性,所有的内容都会显示出来,但在大屏中,如此满的数据展示,不但忽略了视觉体验,还会让用户抓不住重点,对于饼图来说,建议扇区个数不要超过5个,例如保留占比前5的扇区,剩下的非重点数据全部归到“其他”。


    · 保留前五和后五
    如果柱状图的数据项过多,展示时会过于密集,建议先把数据项按照数值大小排序,然后将中间用户可能不是最关心的柱条折叠起来,只保留前五和后五的数据项。


    强调重点

    · 视觉高亮重要信息
    先来看一张对比图,虽然左图颜色更加丰富,但是没有重点,视觉传达给用户的信息是没有主次的,而右图很明显想传达:这个数值有异常!请关注我!在大屏中,为了在短时间内让用户get到关键信息,应该尽量排除其他不重要的数据项干扰。

    折线图中,只高亮重要数据点比每个节点都标注更能传递有效信息

    在饼图中,因为颜色块大小代表占比多少,所以高亮的方式并不一定适用,我们可以通过分离某一块扇区达到强调重点的效果。

    · 尽量减少图例

    大屏的图表中应该尽量避免图例,图例会让用户不断在数据项和颜色块之间往返比对,耗费时间,还容易忘记重点,由于柱条个数经特殊处理后并不会很多,所以数据项名称可以直接标注。


    网易有数:企业级大数据可视化分析平台,具有全面的安全保障、强大的大数据计算性能、先进的智能分析、便捷的协作分享等特性,点击可免费试用


    相关文章:
    【推荐】 OpenResty 最佳实践 (1)

  • 相关阅读:
    JAVA集合
    js Map 遍历
    Oracle中start with...connect by子句的用法
    javascript的setTimeout()与setTimeout()方法用法总结
    js中替换字符串(replace方法最简单的应用)
    Java中SimpleDateFormat用法详解
    JavaScript如何比较两个数组的内容是否相同
    clientX、pageX、offsetX、screenX的区别
    【翻译】详解HTML5 自定义 Data 属性
    【翻译】使用CSS3和jQuery制作跟随鼠标方位的Hover特效
  • 原文地址:https://www.cnblogs.com/zyfd/p/10031653.html
Copyright © 2011-2022 走看看