11

Plotly Express 有一种直观的方式,可以用最少的代码行提供预先格式化的绘图;有点像 Seaborn 是如何为 matplotlib 做的。

可以在 Plotly 上添加绘图轨迹以在现有线图上获得散点图。但是,我在 Plotly Express 中找不到这样的功能。

是否可以在 Plotly Express 中结合散点图和折线图?

4

2 回答 2

25

您可以使用:

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

其中fig1fig2分别使用px.line()和构建px.scatter()fig3如您所见,它是使用plotly.graph_objects.

一些细节:

我经常使用的一种方法是构建两个图形fig1,然后fig2使用plotly.express它们的数据属性将它们与这样的go.Figure / plotly.graph_objects对象组合在一起:

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()

阴谋:

在此处输入图像描述

于 2020-12-03T21:17:54.350 回答
0

如果你想扩展方法

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

如另一个答案所述,这里有一些提示。

fig1.data并且fig2.data是保存情节所需的所有信息并将+它们连接起来的常见元组。

# this will hold all figures until they are combined
all_figures = []

# data_collection: dictionary with Pandas dataframes
 
for df_label in data_collection:

    df = data_collection[df_label]
    fig = px.line(df, x='Date', y=['Value'])
    all_figures.append(fig)

import operator
import functools

# now you can concatenate all the data tuples
# by using the programmatic add operator 
fig3 = go.Figure(data=functools.reduce(operator.add, [_.data for _ in all_figures]))
fig3.show()
于 2021-11-09T06:27:51.103 回答