python - Altair python:背景中的实心水平条
问题描述
我想在 altair 做这样的事情
到目前为止我已经完成的是以下,我无法弄清楚如何根据需要绘制背景
import pandas as pd
from vega_datasets import data
source = data.cars()
line = alt.Chart(source).mark_line().encode(
x='Year',
y='mean(Miles_per_Gallon)'
)
band0 = alt.Chart(pd.DataFrame({'y': [20]})).mark_rule(color='red').encode(y='y')
band1 = alt.Chart(pd.DataFrame({'y': [30]})).mark_rule(color='orange').encode(y='y')
line + band0 + band1
提前致谢!洛雷娜
解决方案
您可以按照此图库示例和如何使用 Altair 为区域着色mark_rect
,通过y2
编码来执行此操作。
import pandas as pd
from vega_datasets import data
import altair as alt
source = data.cars()
line = alt.Chart(source).mark_line().encode(
x='Year',
y='mean(Miles_per_Gallon)')
band0 = (alt.Chart(pd.DataFrame({'y': [0], 'y2':[30]}))
.mark_rect(color='red', opacity=0.3)
.encode(y='y', y2='y2'))
band1 = (alt.Chart(pd.DataFrame({'y': [20], 'y2':[35]}))
.mark_rect(color='yellow', opacity=0.3)
.encode(y='y', y2='y2'))
line + band0 + band1
推荐阅读
- prolog - 在 Sicstus prolog Samsort 中设置排序方法
- reactjs - TypeError:functionName 不是函数(Redux - useDispatch)
- python - 如何使用 CreateView 在 Django 表单上设置初始值
- javascript - setInterval 如果分配给变量只运行一次
- amazon-s3 - 云端对象的标头中缺少缓存 TTL
- python - 如何修复 matplotlib 重叠图
- python - 如何从某个类动态实例化对象
- javascript - TypeError:无法在 ReactJS 中读取 null 的属性“appendChild”
- django - 更改 API 版本控制策略
- sql - SQL - 按来自多个表的信息排序表