首页 > 解决方案 > 有没有办法让 add_vline 垂直线在 y 轴上无限延伸?

问题描述

从 plotly 4.12 版开始,您可以添加水平线和垂直线以及矩形。我已经安装了 4.12。我正在使用以下代码段:

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="petal_length", y="petal_width")
fig.add_vline(x=2.5, line_width=3, line_dash="dash", line_color="green")
fig.add_hrect(y0=0.9, y1=2.6, line_width=0, fillcolor="red", opacity=0.2)
fig.show()

...产生这个数字:

在此处输入图像描述

为什么 vline 不会在 y 轴上无限延伸?

此处描述了相同的问题github.com/plotly/plotly.py/issues/2979,但未提供解决方案。我可以在这里找到解决方法的描述:Plotly:如何在子图中制作无界垂直线?但解决方法非常冗长,而且不那么整洁。

我真的很想使用 add_vline 功能,但我有点困惑,因为文档清楚地说“在 y 维度上无限延伸的绘图或子绘图中添加一条垂直线”。并且这里的所有示例也都超出了 1:因此在我看来,预期的行为应该是让线超出 1。

标签: pythonplotly

解决方案


add_vline 函数使用底层渲染引擎 Plotly.js 中最近添加的功能,这意味着无论您在何处使用 Plotly.py,都需要最新版本的 Plotly.js。在实践中,这意味着在 JupyterLab 中安装最新的 jupyterlab-plotly 扩展,在 Dash 中安装最新的 dash/dash_core_components,或者等到 VSCode 和/或 Streamlit 更新其 Plotly.js 的板载副本,如果您在这些环境中看到此问题。

更多信息可以在这里找到:故障排除 | 蟒蛇 | 情节


推荐阅读