我正在尝试以绘图方式为我的每条迹线绘制选定的标记。我想为标记和线条分配相同的颜色。有没有办法获取轨迹的颜色属性?
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()
您可以使用以下方式检索迹线的颜色:
fig['data'][0]['line']['color']
但是您必须指定迹线的颜色才能执行此操作。或者,您可以确保标记的颜色遵循与迹线相同的顺序。但是,如果实际上这是您要完成的工作,我们可以获取所有详细信息:
如果您学习下面的代码段,您会发现我与您不同,没有在同一行中定义标记。相反,我用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()
[如果您想了解有关线迹和标记迹线具有相同颜色序列的替代方法,请告诉我。