Plotly:如何获取迹线颜色属性以绘制具有相同颜色的选定标记?

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

我正在尝试以绘图方式为我的每条迹线绘制选定的标记。我想为标记和线条分配相同的颜色。有没有办法获取轨迹的颜色属性?

fig = go.Figure()

fig.add_trace(go.Scatter(
    x=[0, 1, 2, 3, 4, 5],
    y=[0, 3, 5, 7, 9, 11],
    name='trace01',
    mode='lines+markers',
    marker=dict(size=[0, 0, 30, 0, 0, 0],
            color=[0, 0, 10, 0, 0, 0])
))
fig.add_trace(go.Scatter(
    x=[0, 1, 2, 3, 4, 5],
    y=[3, 5, 7, 9, 11, 13],
    name='trace02',
    mode='lines+markers',
    marker=dict(size=[0, 0, 0, 30, 0, 0],
            color=[0, 0, 0, 10, 0, 0])
))
fig.show()

enter image description here

python colors plotly
1个回答
0
投票

您可以使用以下方式检索迹线的颜色:

fig['data'][0]['line']['color']

但是您必须指定迹线的颜色才能执行此操作。或者,您可以确保标记的颜色遵循与迹线相同的顺序。但是,如果实际上这是您要完成的工作,我们可以获取所有详细信息:

enter image description here

如果您学习下面的代码段,您会发现我与您不同,没有在同一行中定义标记。相反,我用mode='lines'将迹线添加为纯线,然后使用mode='markers'为标记添加了单独的迹线。进行后者时,我已在循环中使用color=data['line']['color']检索了相应行的颜色:

import plotly.graph_objects as go

fig = go.Figure()

fig.add_trace(go.Scatter(
    x=[0, 1, 2, 3, 4, 5],
    y=[0, 3, 5, 7, 9, 11],
    name='trace01',
    line=dict(color='blue'),
    mode='lines',

))
fig.add_trace(go.Scatter(
    x=[0, 1, 2, 3, 4, 5],
    y=[3, 5, 7, 9, 11, 13],
    name='trace02',
    line=dict(color='red'),
    mode='lines'

))

markers = [[2,5],
           [3,9]]

for i, data in enumerate(fig['data']):
    #print(data['line']['color'])
    fig.add_trace(go.Scatter(x=[markers[i][0]], y=[markers[i][1]],
                   mode='markers',
                   name=None,
                   showlegend=False,
                   marker=dict(color=data['line']['color'],
                               size=15
                    )))
fig.show()

[如果您想了解有关线迹和标记迹线具有相同颜色序列的替代方法,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.