Python Plotly 散点图中的水平线
Horizontal Line in Python Plotly Scatter plot
我正在寻找一种在 Plotly 散点图中绘制两条水平线的方法。我的 x 轴索引不是固定的,每次都在变化。所以我正在寻找 y = 5 和 y = 18 水平穿过图表的水平线
我曾here寻找解决方案,但我不确定如何使用 Plotly express 的布局
我的散点图代码:
import plotly.express as px
df = pd.DataFrame({"x":[0, 1, 2, 3, 4,6,8,10,12,15,18], "y":[0, 1, 4, 9, 16,13,14,18,19,5,12]})
fig = px.scatter(df, x="x", y="y")
fig
是的,您可以使用 fig.update_layout()
做到这一点,方法如下:
import pandas as pd
import plotly.express as px
df = pd.DataFrame({ "x":[0, 1, 2, 3, 4,6,8,10,12,15,18],
"y":[0, 1, 4, 9, 16,13,14,18,19,5,12]})
fig = px.scatter(df, x="x", y="y")
# add two horizontal lines
fig.update_layout(shapes=[
# adds line at y=5
dict(
type= 'line',
xref= 'paper', x0= 0, x1= 1,
yref= 'y', y0= 5, y1= 5,
),
# adds line at y=18
dict(
type= 'line',
xref= 'paper', x0= 0, x1= 1,
yref= 'y', y0= 18, y1= 18,
)
])
fig.show()
生成此图:
我不知道是否有更简单的方法,但我会使用这种方法
现在使用 vline(垂直线)或 hline(水平线)更简单:
import plotly.express as px
df = pd.DataFrame({"x":[0, 1, 2, 3, 4,6,8,10,12,15,18], "y":[0, 1, 4, 9,
16,13,14,18,19,5,12]})
fig = px.scatter(df, x="x", y="y")
fig.add_hline(y=5)
fig.add_hline(y=18)
fig.show()
我正在寻找一种在 Plotly 散点图中绘制两条水平线的方法。我的 x 轴索引不是固定的,每次都在变化。所以我正在寻找 y = 5 和 y = 18 水平穿过图表的水平线
我曾here寻找解决方案,但我不确定如何使用 Plotly express 的布局
我的散点图代码:
import plotly.express as px
df = pd.DataFrame({"x":[0, 1, 2, 3, 4,6,8,10,12,15,18], "y":[0, 1, 4, 9, 16,13,14,18,19,5,12]})
fig = px.scatter(df, x="x", y="y")
fig
是的,您可以使用 fig.update_layout()
做到这一点,方法如下:
import pandas as pd
import plotly.express as px
df = pd.DataFrame({ "x":[0, 1, 2, 3, 4,6,8,10,12,15,18],
"y":[0, 1, 4, 9, 16,13,14,18,19,5,12]})
fig = px.scatter(df, x="x", y="y")
# add two horizontal lines
fig.update_layout(shapes=[
# adds line at y=5
dict(
type= 'line',
xref= 'paper', x0= 0, x1= 1,
yref= 'y', y0= 5, y1= 5,
),
# adds line at y=18
dict(
type= 'line',
xref= 'paper', x0= 0, x1= 1,
yref= 'y', y0= 18, y1= 18,
)
])
fig.show()
生成此图:
我不知道是否有更简单的方法,但我会使用这种方法
现在使用 vline(垂直线)或 hline(水平线)更简单:
import plotly.express as px
df = pd.DataFrame({"x":[0, 1, 2, 3, 4,6,8,10,12,15,18], "y":[0, 1, 4, 9,
16,13,14,18,19,5,12]})
fig = px.scatter(df, x="x", y="y")
fig.add_hline(y=5)
fig.add_hline(y=18)
fig.show()