Altair python:背景中的实心水平条
Altair python: solid horizontal bars in the backgound
我想在 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
提前致谢!
洛雷娜
您可以通过 mark_rect
和 y2
编码 as per this gallery example and How to shade a region with Altair。
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
我想在 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
提前致谢! 洛雷娜
您可以通过 mark_rect
和 y2
编码 as per this gallery example and How to shade a region with Altair。
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