Plotly Express:绘图中元素的顺序python

问题描述

使用Plotly Express时,添加多条迹线的最简单方法似乎是“添加迹线便捷方法”,例如fig.add_scatter。我的问题是,使用这种方法时,在我看来似乎没有办法将添加的轨迹强制到图形的顶部。

下面的示例代码生成一个图形,其中红色“ trace 1”标记隐藏在使用Plotly Express创建的蓝色标记后面。如何将这一层放在绘制顺序之上?我尝试弄乱stackgroup参数,但这没有效果

import numpy as np
import plotly.express as px

fig = px.scatter(x=np.random.rand(20000),y=np.random.rand(20000))

fig.add_scatter(x=np.random.rand(5),y=np.random.rand(5),mode='markers',marker=dict(size=40))

fig.show()

Example Plotly graph

解决方法

不在Plotly Express中,因为它不支持多轴,但是:

import plotly.graph_objects as go
from plotly.subplots import make_subplots

# Create figure with secondary y-axis
fig = make_subplots(specs=[[{"secondary_y": True}]])

fig.add_trace(
    go.Scatter(x=np.random.rand(20000),y=np.random.rand(20000)),secondary_y=False
)

fig.add_trace(
    go.Scatter(x=np.random.rand(5),y=np.random.rand(5),mode='markers',marker=dict(size=40)),secondary_y=True
)

fig.show()

plotly-express-order-of-elements-in-plot-python

然后您可能需要按照here中的说明对齐两个轴。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...