Plotly:如何绘制“2点”之间的水平线,其中x轴上的点是月份

Des*_*wal 1 python data-visualization matplotlib plotly plotly-python

有没有办法控制水平线和垂直线的起点和终点plotly

import plotly.graph_objects as go
        
fig = go.Figure(data=go.Scatter())
fig.add_vline(x=1, line_width=2, line_dash="dash", line_color="green")
fig.add_hline(y=2, line_width=2, line_dash="dash", line_color="red")
fig.show()
Run Code Online (Sandbox Code Playgroud)

上面的代码将绘制线条,但在整个屏幕上

我想做类似的事情:

import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize = (10,7))

ax.hlines(y=2, xmin='July', xmax='Aug', linewidth=2, color='red', linestyles = 'dotted')
ax.axvline(x = 1,color = 'green', linestyle = 'dotted', linewidth = 2)
Run Code Online (Sandbox Code Playgroud)

Der*_*k O 6

根据文档add_vline将跨越绘图的整个 y 轴,并将add_hline跨越绘图的整个 x 轴。

您可以改为使用Plotly Shapesadd_shape中的图形方法,并通过使用参数, , ,指定开始和结束坐标来添加线段。x0x1y0y1

编辑:如果 x 轴上有日期时间,则可以将日期时间传递给 x 坐标参数

import plotly.express as px
import pandas as pd

df = px.data.stocks()
fig = px.line(df, x='date', y="GOOG")

vertical_date_time = pd.to_datetime("2018-07-01")
horizontal_date_time_start = pd.to_datetime("2018-04-01")
horizontal_date_time_end = pd.to_datetime("2018-10-01")
fig.add_shape(type="line", x0=vertical_date_time, y0=0.9, x1=vertical_date_time, y1=1.2, line_width=2, line_dash="dash", line_color="green")
fig.add_shape(type="line", x0=horizontal_date_time_start, y0=1.05, x1=horizontal_date_time_end, y1=1.05, line_width=2, line_dash="dash", line_color="red")

fig.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述