常见可视化图表使用陷阱!

学术   教育   2024-10-29 11:50   上海  

本文分享可视化图表使用陷阱,并提供规避措施!

推荐阅读:
👉《Python可视化教程》,优惠中!

1、合理使用图形配色

  • 毫无意义的颜色

  • 勿滥用渐变色

此时,渐变色太接近,无法识别最有价值数据,建议更换图形,例如bar plot。

  • 一张图颜色超过7种

当分组颜色超过7种时,建议更换图形。

  • 同一变量配色一致
  • 为颜色添加注释
  • 让颜色可交互
  • 颜色对比鲜明
  • 使用直观配色
  • 小值对浅色,大值对深色
  • 分类变量禁用渐变色
  • 使用亮度来构建渐变色,而不仅仅是色调
  • 使用两种色调来构建渐变色
  • 考虑使用发散的渐变色
  • 为色盲读者着想

2、过度绘图

当数据集很大时,散点图的点往往会重叠,乍一看可能会得出 X 和 Y 之间没有明显关系的错误结论,下面提供10种拯救方案:

  • 拯救方案1-减小点的大小
  • 拯救方案2-设置点的透明度
  • 拯救方案3-使用2D密度图
  • 拯救方案4-随机抽样

随机抽取部分点作为代表绘图,

  • 拯救方案5-突出显示一个组
  • 拯救方案6-数据分组
  • 拯救方案7-分面
  • 拯救方案8-抖动图
  • 拯救方案9-3D图
  • 拯救方案10-边界图

3、适时排序

有些情况考虑按组排序会让结果差异一目了然,例如,想使用火柴棒图展示2017年哪个国家出售武器数量最多,按组排序后,可清晰从图中读出美、俄、法三国武器出售数量居前三。


4、坐标轴刻度从非原点出发

上图中,2011、2012、2013三个分组变量很接近,建议Y轴刻度从非0出发,进而凸显差异。


5、拯救面条图

面条图 (Spaghetti plot):在同一张图中展示多组折线图。当分组超过5个时,往往无法区分不同组,如上图,

  • 拯救方法1-使用交互图
  • 拯救方法2-使用分面Area charts
  • 拯救方案3-使用分面交互图

6、糟糕的pie chart

当不同组差异很小时,使用pie chart是非常糟糕的,例如,此时,可考虑使用barplot,或者火柴棒图,


7、为histogram赋予合适的bin


8、揪出boxplot隐藏信息

boxplot可以展示数据的关键指标(如下四分位数、上四分位数、中位数、最大值、最小值、离散点/异常值点)。但是,同时会丢失很多重要信息,这里提供几条boxplot优化策略,

  • 拯救方案1-添加抖动点(jitter)

如果正在处理的数据量不是太大,在箱线图顶部添加抖动可以使图形更具洞察力。

  • 拯救方案2-小提琴图替代

如果您的样本量很大,则不再可以选择使用抖动,因为点会重叠,从而使图形无法解释。另一种选择是小提琴图,它描述了每组数据的分布。

  • 拯救方案3-小提琴图+散点图

9、合理使用error bar指标

三种不同类型的指标值常用于error bar计算,需要因地制宜选取:

  • Standard Deviation (标准差)
  • Standard Error (标准误差)
  • Confidence Interval (置信区间)

使用不同指标得出的error bar差异较大,


10、杂乱的直方图或密度图

数据分组太多时,直方图或密度图显得太杂乱了,无法区分组:同一张图上表示的分布太多了。如何避免这种情况?

  • 拯救方案1-boxplot+抖动点
  • 拯救方案2-小提琴图
  • 拯救方案3-山峦图
  • 拯救方案4-分面图

11、不要反直觉

比如颠倒坐标轴,

配色欺骗,下图其实想突出白色部分,结果将59%突出显示,容易造成误解,


12、妙用双坐标轴

  • 使用场景1-两个变量具有相同度量,幅度不同
  • 使用场景2-两个变量显示某物的相对值和绝对值
  • 使用场景3-两个完全不同的变量
  • 使用场景4-一个变量不同指标

但是,双坐标轴也存在误导读者的问题,

  • 拯救方案1-并排图表
  • 拯救方案2-索引图表
  • 拯救方案3-优先级、标签
  • 拯救方案4-连通散点图

13、数据处理错误


14、慎用极坐标bar图

极坐标bar图的好处是它非常引人注目。但是,由于条形图绘制在极轴的不同径向点上,因此它们具有不同的半径,无法通过长度进行比较。即使数值相同,外部的bar也会比内部的bar更长。建议使用标准条形图或棒棒糖图替代,


15、折线图代替散点图

以上散点往往看不出数据趋势,当换做折线时,趋势明显,


16、 防止坐标轴标签覆盖


-END-
推荐阅读:

👇交流合作

 赞、在看 就是最大的支持

pythonic生物人
分享AI、Python/R可视化、统计、科研!
 最新文章