如何在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 将来也会如此),编码被指定为键值对字典。
所需步骤
- 导入库
- 导入或创建数据
- 使用带有 jitterbox 变换的 altair_catplot.catplot() 方法。
- 修改不同属性的值以获得更好的可视化(可选)。
示例 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))
)
输出: