web-dev-qa-db-fra.com

Traçage: Comment combiner des parcelles de dispersion et de ligne en utilisant tracé express?

Tracé express a une manière intuitive de fournir des parcelles ponctuelles pré-formatées avec des lignes de code minimes; sorte de la façon dont la nénup -nelle le fait pour matplotlib.

Il est possible d'ajouter des traces de parcelles sur tractement pour obtenir un tracé de dispersion sur une parcelle de ligne existante. Cependant, je n'ai pas pu trouver une telle fonctionnalité dans tracé express.

Est-il possible de combiner un graphique de dispersion et de ligne dans tracé express?

8
Ébe Isaac

Une approche que j'utilise beaucoup consiste à construire deux chiffres fig1 et fig2 utilisant plotly.express et ensuite les combiner à l'aide de leurs attributs de données et un go.Figure / plotly.graph_objects objet comme ceci:

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

Parcelle:

enter image description here

2
vestland

Si vous voulez mettre l'accumulation de l'apporach

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

comme indiqué dans l'autre réponse, voici quelques indices.

fig1.data et fig2.data sont des tuples courants qui contiennent toutes les informations nécessaires à une parcelle et à la + juste les concaténe.

# 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()
0
Joe