Дело в том, что размер является свойством маркеров, когда вы обновляете трассу новым маркером, который вы перезаписываете новым json, который не содержит размеров. Нечто подобное могло бы сработать.
var trace1 = {
x: [1, 2, 3, 4],
y: [10, 11, 12, 13],
mode: 'markers',
marker: {
size: [40, 60, 80, 100]
}
};
var data = [trace1];
var layout = {
title: 'Marker Size',
showlegend: false,
height: 400,
width: 480
};
Plotly.newPlot('myDiv', data, layout);
$('#changes').click(function() {
var data_update = {
'marker.symbol': 'square'
}
};
Plotly.restyle('myDiv', data_update, [0]);
});