我正在尝试创建一个方面的图,以比较睡眠剥夺研究中受试者的反应时间。数据来自sleepstudy
数据包中的pydataset
数据集。
使用altair.condition
可以对线条进行不同的样式设置。问题是我没有得到想要获得的结果。我打算用橙色至少突出显示至少一次超过400(ms)的行,即下表中的主题308、332和337。
我在下面的代码中使用的alt.condition
似乎仅测试了df.Reaction
熊猫系列的第一个数据。
我正在使用Altair 4.0.1
。
import altair as alt
from pydataset import data
df = data('sleepstudy')
alt.Chart(df).mark_line().encode(
x=alt.X('Days:O',title=''),y=alt.Y('Reaction:Q',title='',scale=alt.Scale(domain=(200,450))),# How do I test for the condition: is max(reaction) > 400 ms at least once during the study?
color=alt.condition(
alt.datum['Reaction'] > 300,alt.value('orange'),alt.value('darkgray')
),facet=alt.Facet('Subject:O',columns=3,).properties(
title='Reaction times (ms) for sleep-deprived subjects over 10 days',width=200,height=100
)