动态添加绘图

问题描述 投票:0回答:1

假设我有以下结合了两个 Plotly 图表的示例

import plotly.express as px
import plotly.graph_objects as go
df = px.data.iris()

fig1 = px.line(df, x="sepal_width", y="sepal_length")
fig1.update_traces(line=dict(color = 'rgba(50,50,50,0.2)'))

fig2 = px.scatter(df, x="sepal_width", y="sepal_length", color="species")

fig3 = go.Figure(data=fig1.data + fig2.data)
fig3.show()

现在我不仅有两个,还有几个我想动态添加的图,而不是像上面那样显式地输入。以下内容不起作用,但是是否存在类似的东西,无需显式输入总和即可添加图表?

fig3 = go.Figure(data=sum([fig1.data, fig2.data]))   # this doesn't work
python plotly
1个回答
0
投票

这可以用一个简单的函数来处理。

def dataSum(data):
    ret = data[0]
    for i in range(1, len(data)):
        ret = ret + data[i]
    return ret

这可以通过逐一添加值来实现,就像手动操作一样。在完整的上下文中,那就是

import plotly.express as px
import plotly.graph_objects as go
df = px.data.iris()

figs = []

fig1 = px.line(df, x="sepal_width", y="sepal_length")
fig1.update_traces(line=dict(color = 'rgba(50,50,50,0.2)'))

figs.append(fig1.data)

fig2 = px.scatter(df, x="sepal_width", y="sepal_length", color="species")

figs.append(fig2.data)

fi3 = go.Figure(data=dataSum(figs))
fig3.show()
© www.soinside.com 2019 - 2024. All rights reserved.