python-3.x 当向fig=px.scatter()添加轨迹时,是否必须与fig.add_traces(go.Scatter())一起添加?

hjqgdpho  于 2023-04-22  发布在  Python
关注(0)|答案(2)|浏览(163)

当向fig=px.scatter()添加轨迹时,是否必须与fig.add_traces(go.Scatter())一起添加?
我这么问是因为px.scatter和go. scatter之间的细微差别让我很困惑,这是一个需要记住的PIA(对我来说)。另外,使用一个或另一个更好/更全面?
我觉得我应该能够以与创建原始轨迹相同的方式添加轨迹?即,图add_traces(px.Scatter())。这将减少对所有输入的记忆。我错过了什么吗?
下面是我示例代码:

df  = pd.DataFrame({'x':[1,2,3,4],'y':[1,1,1,1],'z':[10,10,10,10],'custom':[30,30,30,30]})
df2 = pd.DataFrame({'x':[1,2,3,4],'y':[2,2,2,2],'z':[15,15,15,15],'custom':[40,40,40,40]})

fig = px.scatter(df, 
                 x='x', 
                 y='y',
                 size='z',
                 size_max=10,
                 custom_data=['custom'],
                 color_discrete_sequence=['red'],
                 )

fig.update_traces(
    hovertemplate="<br>".join([
        "x: %{x}",
        "some custom data: %{custom_data[0]}",
    ])
)

fig.add_traces(go.Scatter(  x=df2['x'], 
                            y=df2['y'],
                            mode='markers',
                            customdata=df2['custom'],
                            marker=dict(size=7, 
                                        symbol='circle', 
                                        color='blue',
                 )))

fig.update_traces(
    hovertemplate="<br>".join([
        "x: %{x}",
        "some custom data: %{customdata}",
    ])
)
fig.show()

谢谢!

eufgjt7s

eufgjt7s1#

如果您在fig.add_traces(go.Scatter())中发现混淆的是go.Scatter()部分,则可以使用以下代码:

fig.add_scatter

或者,您可以使用任何其他方法,通过运行dir(go.Figure())来显示它们自己,例如:

add_bar
 add_barpolar
 add_box
 add_candlestick

完整代码:

import plotly.graph_objects as go
fig = go.Figure()
dir(fig)
4dc9hkyq

4dc9hkyq2#

这里有一个简单的解决方案。

import pandas as pd
import plotly.express as px

df  = pd.DataFrame({'x':[1,2,3,4],'y':[1,1,1,1],'z':[10,10,10,10],'custom':[30,30,30,30]})
df2 = pd.DataFrame({'x':[1,2,3,4],'y':[2,2,2,2],'z':[15,15,15,15],'custom':[40,40,40,40]})

fig = px.scatter(df, 
                 x='x', 
                 y='y',
                 size='z',
                 size_max=10,
                 hover_data=['custom'],
                 color_discrete_sequence=['red'],
                 )

fig2 = px.scatter(df2, 
                 x='x', 
                 y='y',
                 hover_data=['custom'],
                 color_discrete_sequence=['blue'],
                 )

fig2.update_traces(marker=dict(
                                size=7, 
                                symbol='circle', 
                                color='blue',
                     ))

# Add all the traces from fig2 to fig
fig.add_traces(fig2.data)
fig.show()

相关问题