惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
宝玉的分享
宝玉的分享
月光博客
月光博客
小众软件
小众软件
Jina AI
Jina AI
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
G
Google Developers Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
可视化图表设计技巧②|让可视化图表更易于理解的15个技巧! - ...
2024-07-11 · via 少数派

这是可视化图表设计技巧专题的第二篇——【如何让可视化图表更易于理解】,分享15个让可视化图表更易于理解的小技巧!

本专题的第一篇内容指路:可视化图表设计技巧①|提高图表可读性的 7 个技巧和小窍门 

接下来的内容同样会边操作边讲解,我用的是这个模板:可视化图表,大家根据自己的习惯选择趁手的工具即可,技巧都是通用的。

1. 选择合适的图表类型

现在有非常多种图表类型可用于可视化数据,例如折线图、柱形图、饼图、散点图等等。所以在做图表的时候,我们需要仔细选择适合的图表类型,也就是说,你希望传达给用户什么样的信息。

图表类型

因此在开始设计之前,你要清楚都有哪些图表类型,不同图表类型的使用场景又是什么。

例如,你需要按类别显示不同种类水果每月的销售量,其总和为100%。应该使用饼图而不是柱形图,因为它可以快速显示数据的占比情况。

再比如有两组数据需要可视化和比较,最好使用柱形图而不是折线图,因为柱形图更适合分类和比较。

而如果数据量很大并需要可视化其趋势,那么推荐使用折线图。它可以通过向用户传达趋势,以有意义的方式可视化大量数据。

当然,如果你想通过代码实现的话参考这个:

注:同样的,以下代码是参考哈,大家用的时候自行验证。

[ Dart ] 
SfCartesianChart( 
   series: <<ChartSeries<<ChartData, double >>>>[
       // 呈现柱状系列
      ColumnSeries<<ChartData, double >>(
          //... 
      ), // 呈现线状系列
      LineSeries<<ChartData, double >>(
          //... 
      ) 
   ], //... 
)   

2. 保持简单设计

可视化图表的设计,不要过分追求复杂和炫技(指的是在业务中的数据分析图表),始终保持图表设计简单,选择一种简单的方式来传达信息。

如果只是为了让图表看起来更加好看时尚,而在设计中添加特殊效果,可能会在向用户传达内容时造成混淆。

例如,3D 图表可能比 2D 图表更难理解,因为 3D 图形中的深度效果会扭曲数据:

在上面的 3D 图表中,高度和深度效果使值看起来大于 14k,在相同数据的 2D 图表中,可以看到值正好是 14k。

3. 使用动画,但不要过度

为了使图表变得”看起来更吸引人“,经常会过度使用效果和动画,导致呈现效果不佳。

图表可以有动画,但它们应该非常简单和流畅。例如,最好使用淡入/淡出效果,而不是弹入/弹出效果。

对图表中的所有元素使用相同的动画。例如,在同一图表中为某个系列选择淡入效果,为另一个系列选择弹入效果可能会让用户感到困惑。

此外,任何动画的持续时间都不应超过两秒。动画花费的时间越多,用户就越需要等待,才能看到数据,这可能会让人厌烦。

实现参考代码如下:

[ Dart ] 
SfCartesianChart( 
   series: <<ChartSeries<<ChartData, double >>>>[ 
      ColumnSeries<<ChartData, double >>(
          // 以毫秒为单位的值
         animationDuration: 2000 
       ), 
       LineSeries<<ChartData, double >>( 
          animationDuration: 2000 
       ) 
   ], //... 
)
   

4. 按逻辑顺序排列数据

无序数据因为不直观所以很难理解,有序数据阅读起来会更加清晰直观。

数据点可以按字母顺序排列,也可以按其值排序,可以按升序或降序排列,排序模式根据你的数据决定即可。

比如我用文章开头的模板,就可以通过图表右上角的【排序】按钮实现:

如果用代码实现的话,参考:

[Dart]
 SfCartesianChart(
  系列:<<ChartSeries<<ChartData,双倍>>>>[ 
    ColumnSeries<<ChartData,双倍>>(
       sortingOrder:SortingOrder.ascending,   
       sortFieldValueMapper:(ChartData sales,_)=>>sales.y          
    )
  ],//... 
)
  

5. 添加有意义的标题

图表中的标题文本可以向用户解释数据要展示的内容和大纲。此外,还可以在适用的情况下向标签添加轴标题和格式。

如果数据和其他元素(如数据标签和图例)本身足以传达信息,则可以忽略标题。

如果用代码的话,参考这个:

[Dart] 
SfCartesianChart(
   标题:ChartTitle(
      文本:'人口增长比较' 
   ),primaryXAxis:NumericAxis(
      标题:AxisTitle(
         文本:'国家' 
      )
   ),primaryYAxis:NumericAxis(
      标题:AxisTitle(
         文本:'增长(%)' 
      )
   )
)
  

6. 启用图例和数据标签

可以在图表中通过启用图例的方式来显示有关数据的其他信息,图例中显示系列名称。

当图表中有多个系列时,图例会更有帮助。通过启用数据标签,用户可以更轻松地了解确切的数据点值。

在我自己用的这个可视化模板中,可以通过图表设计的右侧选择展示【数据标签】和【图例】。

如果是用代码实现的话,可以参考以下:

[Dart]
 SfCartesianChart(
  图例:图例(isVisible:true),
  系列:<<ChartSeries<<ChartData,double >>>>[ 
    ColumnSeries<<ChartData,double >>(
       dataLabelSettings:DataLabelSettings( 
         isVisible:true 
      )          
    )
  ] //... 
)
  

7. 选择简单的文本样式

在图表中添加文本时,一定要选择简单易读的字体系列,不要花里胡哨。

在下面的示例中,右侧的图表比左侧的图表更易于阅读。

8. 在必要的地方留出空间

图表中的元素之间务必添加必要的空格,否则图表会显得杂乱,难以理解。

例如,在下图中,右侧的图表比左侧的图表更直观和容易理解。

可以通过设置系列中的间距和宽度属性值来控制列之间的间距,代码示例:

[Dart]
 SfCartesianChart(
  系列:<<ChartSeries<<ChartData,double >>>>[ 
    ColumnSeries<<ChartData,double >>(
       宽度:0.7,      
       间距:0 
    )
  ],//... 
)
  

9. 避免不必要的空格

上面提到要留出必要的空格,但也不要啥都放空格,一定要记住,只在必要时才添加空格。

过多的空格会使图表看起来杂乱无章,破坏设计,比如右边的比左边的明显看起来更美观。

10. 用形状传达上下文线索

在图表中使用有意义的符号或图像也有助于理解。

例如,在下图中,与左侧图表相比,右侧图表一目了然,更美观。

代码参考:

[Dart]
 SfCartesianChart(
  系列:<<ChartSeries<<ChartData,双倍>>>>[ 
    ScatterSeries<<ChartData,双倍>>(
       markerSettings:MarkerSettings( 
         isVisible:true,
        形状:DataMarkerType.image,
        图像:const  AssetImage('images/truck.png')
      )          
    )
  ] //... 
)
  

11. 保持适当的轴范围

不正确的轴范围可能会向用户传达误导性的信息,所以最好始终将轴从 0 开始。

例如,左侧图表中将 HP 的价值描绘得比联想低得多,而实际上这两家供应商的出货量都很高,而且它们之间的差异并不大。

y 轴值不从 0 开始会扭曲这些事实,右侧的图表能更好的说明数据。

12. 对同一类型的数据使用单一颜色

始终对一个系列中的所有数据点使用相同的颜色。

在没有特定原因的情况下对数据点应用不同的颜色会让用户感到困惑,同时,为另一个系列中的所有数据点提供不同的颜色。

在我用的这个模板中,可以通过设计【图表配色】来实现,比如按维度还是按单价:

13. 有效地展示附加信息

虽然说我们一直强调避免在图表中显示过多的信息,但不能忽视基本信息的展示。

比如在图表中适当的使用注释,用于传达有关基本图表的附加信息。还可以根据情况使用轨迹球和工具提示来显示附加信息或者注释。

代码参考:

[Dart] 
SfCartesianChart(
  注释:<<CartesianChartAnnotation>>[
     CartesianChartAnnotation(
      小部件:Container(
        子:SfCircularChart(
           //... 
        )
      )
    )
  ] 
)

14. 突出显示您正在讨论的数据

当你要展示的类目与图表中的某个系列一致时,可以用特殊颜色突出显示该点并淡化其他数据点

这可以引导用户的注意力到该特定数据点。

这个就很简单了,在我的模板中,直接通过修改对应品类的数据条颜色即可:

和数据点一样,也可以在图表中突出显示轴范围,以帮助你阐述数据事实。

可以使用图表中的辅助线或者预警线功能来实现。

可以通过设置【数据预警】和【辅助线】来实现,数据预警用来做最低提醒,辅助线用来判断平均值:

希望这些技巧能帮助大家提高可视化图表的可读性,大家有什么好用的技巧也欢迎分享!感兴趣的话请继续关注我下一篇内容哦!