📌  相关文章
📜  如何在Python中使用 Altair 制作带有抖动数据点的箱线图?

📅  最后修改于: 2022-05-13 01:55:32.519000             🧑  作者: Mango

如何在Python中使用 Altair 制作带有抖动数据点的箱线图?

在本文中,我们将确定使用 Altair 使用数据点形成箱线图的方法。最新版本的 Altair 支持制作简单的箱线图。但是,当前版本的 Altair 不支持在箱线图上添加抖动数据点。由于来自加州理工学院的 Justin Bois,我们将使用他的数据可视化实用程序包 Altair-catplot,我们将制作带有抖动数据点的箱线图。

  • Altair Altair 是Python中的统计可视化库。它本质上是声明性的,基于 Vega 和 Vega-Lite 可视化语法。它正迅速成为寻求快速有效数据集可视化方法的人们的首选。如果您使用过像 matplotlib 这样的命令式可视化库,您将能够正确地欣赏 Altair 的功能。
  • Catplot : Catplot 是 Seaborn 的一个相对较新的补充,它简化了涉及分类变量的绘图。在 Seaborn 版本 v0. 2018 年 7 月发布的 9.0 将旧的因子图更改为猫图,以使其与 Pandas 和 seaborn 中的术语更加一致。
  • 箱线图我们可以创建一个箱线图如下。请注意,标记是一个指定箱线图的字符串(Altair 将来也会如此),编码被指定为键值对字典。

所需步骤

  1. 导入库
  2. 导入或创建数据
  3. 使用带有 jitterbox 变换的 altair_catplot.catplot() 方法。
  4. 修改不同属性的值以获得更好的可视化(可选)。

示例 1:

Python3
# importing packages
import altair
import altair_catplot
import seaborn
  
# load data
tip = seaborn.load_dataset('tips')
  
# draw a plot
altair_catplot.catplot(tip,
                       transform ='jitterbox',
                       mark ='point',
                       encoding = dict(x = altair.X('time:N', title = None),
                                     y = altair.Y('total_bill:Q', scale = altair.Scale(zero = False)),
                                     color = altair.Color('time:N', legend = None))
                      )


Python3
# importing packages
import altair
import altair_catplot
import seaborn
  
# load data
tip = seaborn.load_dataset('tips')
  
# draw a plot
altair_catplot.catplot(tip,
                       transform ='jitterbox',
                       mark ='square',
                       encoding = dict(x = altair.X('day:N', title = None),
                                     y = altair.Y('total_bill:Q', scale = altair.Scale(zero = False)),
                                     color = altair.Color('day:N', legend = None))
                      )


Python3
# importing packages
import altair
import altair_catplot
import seaborn
  
# load data
iris = seaborn.load_dataset('iris')
  
# draw a plot
altair_catplot.catplot(iris,
                       transform ='jitterbox',
                       mark ='circle',
                       encoding = dict(x = altair.X('species:N', title = None),
                                     y = altair.Y('sepal_length:Q', scale = altair.Scale(zero = False)),
                                     color = altair.Color('species:N', legend = None))
                      )


输出:

示例 2:

蟒蛇3

# importing packages
import altair
import altair_catplot
import seaborn
  
# load data
tip = seaborn.load_dataset('tips')
  
# draw a plot
altair_catplot.catplot(tip,
                       transform ='jitterbox',
                       mark ='square',
                       encoding = dict(x = altair.X('day:N', title = None),
                                     y = altair.Y('total_bill:Q', scale = altair.Scale(zero = False)),
                                     color = altair.Color('day:N', legend = None))
                      )

输出:

示例 3:

蟒蛇3

# importing packages
import altair
import altair_catplot
import seaborn
  
# load data
iris = seaborn.load_dataset('iris')
  
# draw a plot
altair_catplot.catplot(iris,
                       transform ='jitterbox',
                       mark ='circle',
                       encoding = dict(x = altair.X('species:N', title = None),
                                     y = altair.Y('sepal_length:Q', scale = altair.Scale(zero = False)),
                                     color = altair.Color('species:N', legend = None))
                      )

输出: