考虑下面的简单数据框,其中
step1
和 step2
是 start
之后的天数。
id start step1 step2
a 0 10 27
b 0 5 45
c 0 1 11
.. ... ... ...
我想绘制(使用
Plotly
)一条看起来像这样的图形线(快速绘图/蒙太奇)。灰线和红线是虚构的。
我尝试过
strip
,scatter
...但没有成功。看起来你需要的只是plotly.express.line
假设我们有以下数据:
import pandas as pd
from string import ascii_lowercase
from numpy.random import default_rng
rng = default_rng(0)
size = 10
data = {
'id': [*ascii_lowercase][:size]
, 'start': rng.integers(0, 10, size)
, 'step1': rng.integers(3, 15, size)
, 'step2': rng.integers(6, 20, size)
}
df = pd.DataFrame(data)
然后我们可以这样得到与预期类似的图:
import plotly.express as pe
(
pe
.line(df.set_index('id').T, title='Number of days')
.update_layout(xaxis_title='steps', yaxis_title='days')
)