Holoviews 3d scatter edge color

Hi

I was wondering if its possible set an edge colour in a holoview 3d scatter plot.
I was looking at the code here: http://holoviews.org/reference/elements/plotly/Scatter3D.html ( which works fine ).

However if I try something like the approach here https://plotly.com/python/marker-style/
to add a marker boarder in the holoview options then it isn’t recognised.

My next thought is to use a hook to reach back into plotly to try to explicitly set a marker edge color and thickness.

[Code attempt below]]

import numpy as np
import holoviews as hv
from holoviews import dim, opts

hv.extension('plotly')

y,x = np.mgrid[-5:5, -5:5] * 0.1
heights = np.sin(x**2+y**2)
hv.Scatter3D((x.flat, y.flat, heights.flat)).opts(cmap='fire',
                                                  color='z',
                                                  
                                                  marker=dict(size=12,
                                                              line=dict(width=2,
                                                                        color='DarkSlateGrey')),
                                                  )

[Code error ]

ValueError:
Invalid value of type ‘builtins.dict’ received for the ‘symbol’ property of scatter3d.marker
Received value: {‘size’: 12, ‘line’: {‘width’: 2, ‘color’: ‘DarkSlateGrey’}}

The 'symbol' property is an enumeration that may be specified as:
  - One of the following enumeration values:
        ['circle', 'circle-open', 'square', 'square-open',
        'diamond', 'diamond-open', 'cross', 'x']
  - A tuple, list, or one-dimensional numpy array of the above

:Scatter3D [x,y,z]

Many thanks @jonmmease for ( https://github.com/holoviz/holoviews/issues/4638 )

By printing the ‘components’ handles and looking at the first element of the traces list ( which is a dictionary ) I can access the marker dictionary inside this dictionary and ad a key for ‘line’ whose value is a dictionary where I can specify the boarder width and color as below:

import numpy as np
import holoviews as hv
from holoviews import dim, opts

hv.extension('plotly')

def hook(plot, element):
    print('plot.handles: ', sorted(plot.handles.keys()))
    print(plot.handles['components']['traces'])
    plot.handles['components']['traces'][0]['marker']['line'] = dict(width=10,color='black')
    

y,x = np.mgrid[-5:5, -5:5] * 0.1
heights = np.sin(x**2+y**2)
hv.Scatter3D((x.flat, y.flat, heights.flat)).opts(
                                                  size = 8,
                                                  color='z',
                                                  hooks=[hook]
                                                  
                                                  )

Interestingly I don’t seem to be able to see the point marker’s line width change by changing the value I define in the dictionary through the ‘width’ value:

dict(width=10,color='black')