如何使用循环在 Ploty 散点图中绘制 N 条垂直线?
How to plot N vertical lines in a Ploty scatter plot using a loop?
我想在 Ploty 的散点图中添加 N 条垂直线。
如果我对每一行重复使用此指令,我的代码就可以工作: fig.add_vline(x=lineN)
,
但我不想手动添加 N 指令,所以我尝试遍历 N 行的列表。我没有得到错误,但是,我得到了没有垂直线的散点图。
这是我的代码现在的样子(仅用两行测试):
line5=pd.to_datetime('2017-06-7 17:29:57')
line8=pd.to_datetime('2017-06-7 19:08:09')
list=[5,8]
fig=px.scatter(df,x='time',y='height')
fig.update_layout(autosize=False,width=1100,height=400,)
for number in list:
fig.add_vline(x="line%s" %number)
fig.show()
这就是我所期望的图形的样子:
感谢您的帮助!
- 根据你的图像,xaxis 是 datetime
- 因此,只要您提供给 x 的值类型正确,添加多行就很简单
- 下面的代码模拟您的数据框并向图中添加 20 条随机选择的线
import numpy as np
import pandas as pd
df = pd.DataFrame(
{
"time": pd.date_range("6-Jul-2017", freq="90S", periods=1000),
"height": np.sin(np.linspace(-np.pi * 2, np.pi * 2, 1000))*np.random.uniform(.9,1.1,1000),
}
)
fig = px.scatter(df, x="time", y="height")
for t in df.sample(20)["time"].dt.to_pydatetime():
fig.add_vline(x=t, line_width=2, line_dash="dash", line_color="red")
fig
我想在 Ploty 的散点图中添加 N 条垂直线。
如果我对每一行重复使用此指令,我的代码就可以工作: fig.add_vline(x=lineN)
,
但我不想手动添加 N 指令,所以我尝试遍历 N 行的列表。我没有得到错误,但是,我得到了没有垂直线的散点图。
这是我的代码现在的样子(仅用两行测试):
line5=pd.to_datetime('2017-06-7 17:29:57')
line8=pd.to_datetime('2017-06-7 19:08:09')
list=[5,8]
fig=px.scatter(df,x='time',y='height')
fig.update_layout(autosize=False,width=1100,height=400,)
for number in list:
fig.add_vline(x="line%s" %number)
fig.show()
这就是我所期望的图形的样子:
感谢您的帮助!
- 根据你的图像,xaxis 是 datetime
- 因此,只要您提供给 x 的值类型正确,添加多行就很简单
- 下面的代码模拟您的数据框并向图中添加 20 条随机选择的线
import numpy as np
import pandas as pd
df = pd.DataFrame(
{
"time": pd.date_range("6-Jul-2017", freq="90S", periods=1000),
"height": np.sin(np.linspace(-np.pi * 2, np.pi * 2, 1000))*np.random.uniform(.9,1.1,1000),
}
)
fig = px.scatter(df, x="time", y="height")
for t in df.sample(20)["time"].dt.to_pydatetime():
fig.add_vline(x=t, line_width=2, line_dash="dash", line_color="red")
fig