假设我有以下结合了两个 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
这可以用一个简单的函数来处理。
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()