gpt4 book ai didi

python - 如何使用 Altair 为区域着色

转载 作者:行者123 更新时间:2023-12-03 14:50:16 25 4
gpt4 key购买 nike

This is how I would like the image to look like

我试图在我用 Altair 创建的图中对不同的区域进行着色(如 matplotlib 中的 axvspan),但找不到方法来做到这一点。

Chart(data).mark_line(color='r').encode(
x=X('Voltage'),
y=Y('Current (pA)', axis=Axis(format='r'), title='Current (pA)'),
color='Line polarity:N',
shape='Line polarity:N',
)

最佳答案

模仿 matplotlib 的最佳方式 axvspan在 Altair 是一个 rect标记与 y 轴中的像素值相关。
下面是一个例子:

import altair as alt
import numpy as np
import pandas as pd

np.random.seed(1701)

data = pd.DataFrame({
'Voltage': np.linspace(0, 100, 10),
'Current': np.random.randn(10).cumsum()
})

cutoff = pd.DataFrame({
'start': [0, 8, 30],
'stop': [8, 30, 100]
})

line = alt.Chart(data).mark_line().encode(
x=alt.X('Voltage'),
y=alt.Y('Current')
)

areas = alt.Chart(
cutoff.reset_index()
).mark_rect(
opacity=0.2
).encode(
x='start',
x2='stop',
y=alt.value(0), # pixels from top
y2=alt.value(300), # pixels from top
color='index:N'
)

(areas + line).interactive()
enter image description here

关于python - 如何使用 Altair 为区域着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43482055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com