Hi @eyebp,
You can’t do this directly, but you could use a hack of using the marker.colorscale of the first line trace.
import plotly.plotly as py
import plotly.graph_objs as go
# mapbox_access_token = 'MAPBOX_TOKEN'
data = [
go.Scattermapbox(
lat=['45.5017', '46.9027'],
lon=['-73.5673', '-73.5673'],
mode='lines+markers',
marker=dict(
size=0,
showscale=True,
colorscale=[[0, 'green'],
[1, 'red']],
cmin=0,
cmax=50
),
line={'color': 'red'},
),
go.Scattermapbox(
lat=['45.5017', '46.9027'],
lon=['-74.5673', '-74.5673'],
mode='lines',
line={'color': 'green'},
)
]
layout = go.Layout(
autosize=True,
showlegend=False,
hovermode='closest',
mapbox=dict(
accesstoken=mapbox_access_token,
bearing=0,
center=dict(
lat=45,
lon=-73
),
pitch=0,
zoom=5
),
)
fig = go.FigureWidget(data=data, layout=layout)
fig
Note that the first trace has:
-
mode set to lines+markers (markers is needed here for the color scale to be able to be turned on)
-
marker.size set to 0 so that markers don’t actually show up
-
marker.showscale set to True to turn on colorbar
-
marker.colorscale, marker.cmin, marker.cmax to configure colorscale and color range
And layout has show_legend=False to turn off the lines legend.
The caution here is that you’re totally responsible for making sure that the colorscale corresponds to your line colors.
Hope that helps get you started!
-Jon