误差带#
误差带使用一组汇总统计数据来概括定量值的误差范围,用面积表示。Altair 中的误差带可以用来聚合原始数据,也可以直接可视化聚合数据。
要创建误差带,请使用mark_errorband
。
误差带标记属性#
一个errorband
标记定义可以包含以下属性
点击显示表格
属性 |
类型 |
描述 |
---|---|---|
extent |
带的范围。可用选项包括
默认值: |
|
orient |
误差带的方向。通常会自动确定,但在方向不明确且无法自动确定时可以指定。 |
|
color |
默认颜色。 默认值: :raw-html: 注意
|
|
opacity |
|
标记的不透明度(值在 [0,1] 之间)。 |
interpolate |
误差带的线条插值方法。以下之一:
|
|
tension |
|
误差带插值类型的张力参数。 |
除了上面列出的属性外,还可以使用band
和borders
来指定误差带不同部分的底层标记属性。
比较误差带与误差条的用法#
误差带的所有属性和用法与误差条相同,除了用band
和borders
替换了误差条的rule
和ticks
。
误差带
import altair as alt
from vega_datasets import data
source = data.cars.url
alt.Chart(source).mark_errorband(extent="ci", borders=True).encode(
x="year(Year)",
y=alt.Y(
"Miles_per_Gallon:Q",
scale=alt.Scale(zero=False),
title="Miles per Gallon (95% CIs)",
),
)
误差条
import altair as alt
from vega_datasets import data
source = data.cars.url
alt.Chart(source).mark_errorbar(extent="ci", ticks=True).encode(
x="year(Year)",
y=alt.Y(
"Miles_per_Gallon:Q",
scale=alt.Scale(zero=False),
title="Miles per Gallon (95% CIs)",
),
)
使用误差带来聚合原始数据#
如果数据尚未聚合,Altair 将根据标记定义中的extent
属性聚合数据,就像上面显示置信区间的误差带一样。所有其他extent
值在误差条中定义。
使用误差带来可视化聚合数据#
1. 数据已用误差带的低值和高值聚合 如果数据已预聚合,包含误差带的低值和高值,你可以直接指定x
和x2
(或y
和y2
),将误差带用作范围标记。
import altair as alt
import pandas as pd
source = pd.DataFrame(
{
"ci1": [23.5007, 25.8214, 26.4472, 27.7074],
"ci0": [19.6912, 20.8554, 21.9749, 22.6203],
"center": [21.5735, 23.3750, 24.0611, 25.0931],
"Year": [189302400000, 220924800000, 252460800000, 283996800000],
}
)
band = alt.Chart(source).mark_errorband().encode(
alt.Y(
"ci1:Q",
scale=alt.Scale(zero=False),
title="Mean of Miles per Gallon (95% CIs)"
),
alt.Y2("ci0:Q"),
alt.X("year(Year)"),
)
line = alt.Chart(source).mark_line().encode(
alt.Y("center:Q"),
alt.X("year(Year)")
)
band + line
2. 数据已用中心值和误差值聚合 如果数据已预聚合,包含误差带的中心值和误差值,你可以使用x/y
、x/yError
和x/yError2
,这些在误差条中定义。
维度#
Altair 支持一维和二维误差带
一维误差带显示连续字段的误差范围;它可以用来显示整个图表的全局误差范围。
import altair as alt
from vega_datasets import data
source = data.cars.url
band = alt.Chart(source).mark_errorband(extent="stdev").encode(
alt.Y("Miles_per_Gallon:Q").title("Miles per Gallon")
)
points = alt.Chart(source).mark_point().encode(
x="Horsepower:Q",
y="Miles_per_Gallon:Q",
)
band + points
二维误差带显示连续字段针对每个维度值(如年份)的误差范围。
import altair as alt
from vega_datasets import data
source = data.cars()
line = alt.Chart(source).mark_line().encode(
x="Year",
y="mean(Miles_per_Gallon)"
)
band = alt.Chart(source).mark_errorband(extent="ci").encode(
x="Year",
y=alt.Y("Miles_per_Gallon").title("Miles/Gallon"),
)
band + line
颜色和不透明度编码通道#
你可以通过使用color
和opacity
编码通道来自定义带的颜色和不透明度。
这里有一个errorband
的例子,其中color
编码通道被设置为alt.value('black')
。
import altair as alt
from vega_datasets import data
source = data.cars.url
alt.Chart(source).mark_errorband(extent="ci", borders=True).encode(
x="year(Year)",
y=alt.Y("Miles_per_Gallon:Q")
.scale(zero=False)
.title("Miles per Gallon (95% CIs)"),
color=alt.value("black")
)