如何在Python中使用 Altair 制作气泡图?
先决条件:用Python介绍 Altair
Altair是一个简单易用的Python统计可视化库。它包含多种类型的内置绘图和各种用于修改属性和生成其他绘图的选项。气泡图是一种非常有用的可视化方法,用于对与第三个变量相关的数据进行双变量分析。它在 Altair 库中并不容易获得,但可以通过对散点图进行一些简单的修改来实现。
什么是气泡图?
气泡图基本上是两个变量/数据列之间的散点图,其中代替数据点,有不同大小的气泡/圆圈指示第三个变量。第三个变量可以是定量、有序或名义类型,但气泡图中使用的最佳类型是有序类型,即具有特定排序的数据。图例显示哪个圆圈大小对应于哪个数据值。
气泡图可以帮助我们查看两个变量与第三个变量之间的关系。气泡越大,它对应的数据价值就越大。
创建气泡图
要制作气泡图,用户只需将数据集中的合适变量映射到简单散点图中的大小编码即可。
这些文章中使用的数据集来自 Vega_datasets 库。
Python3
# Python3 program to illustrate
# How to make a bubble plot
# using the altair library
# Importing altair and vega_datasets
import altair as alt
from vega_datasets import data
# Selecting the cars dataset
cars = data.cars()
# Making the base scatter plot
alt.Chart(cars).mark_point().encode(
# Map the sepalLength to x-axis
x = 'Acceleration',
# Map the petalLength to y-axis
y = 'Displacement',
# Map the Cylinders variable to size
# and specify it as a nominal variable
size = 'Cylinders:N'
)
Python3
# Python3 program to illustrate
# how to customize a bubble plot
# Importing altair and vega_datasets
import altair as alt
from vega_datasets import data
# Selecting the cars dataset
cars = data.cars()
# Making the base scatter plot
# and adding the customizations
alt.Chart(cars).mark_point(color='green',
filled=True,
opacity=0.4).encode(
# Map the sepalLength to x-axis
x='Acceleration',
# Map the petalLength to y-axis
y='Displacement',
# Map the Cylinders variable to size
# and specify it as a nominal variable
size='Cylinders:N'
)
输出:
自定义气泡图
您可以对气泡图进行以下自定义:
- Color :您可以通过设置 mark_point() 方法的颜色参数来更改气泡的默认颜色。
- Opacity :您可以通过设置 mark_point() 方法的 opacity 参数来更改气泡的默认不透明度。它的范围从 0 到 1。
- Filled :默认情况下为 false,但您可以将填充参数更改为 true,从而使用指定颜色填充气泡。
例子:
蟒蛇3
# Python3 program to illustrate
# how to customize a bubble plot
# Importing altair and vega_datasets
import altair as alt
from vega_datasets import data
# Selecting the cars dataset
cars = data.cars()
# Making the base scatter plot
# and adding the customizations
alt.Chart(cars).mark_point(color='green',
filled=True,
opacity=0.4).encode(
# Map the sepalLength to x-axis
x='Acceleration',
# Map the petalLength to y-axis
y='Displacement',
# Map the Cylinders variable to size
# and specify it as a nominal variable
size='Cylinders:N'
)
输出: