使用标记符号以图形方式更新迹线会重置标记大小

时间:2018-10-31 01:38:33

标签: plotly plotly.js

问题:

我正在使用plotly.js

当我尝试更新marker.symbol时,它会重置marker.size

JSFIDDLE: https://jsfiddle.net/bababalcksheep/sa0rbfg8/6/

代码:

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]);
 });

1 个答案:

答案 0 :(得分:1)

问题是大小是标记的属性,当您使用新的标记对象更新跟踪时,您将使用不包含大小的新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]);
 });