无法通过设置标记类型来扩展轨迹

Can't extend traces with setting the marker type

使用下面的代码,我正在尝试创建一个简单的气泡图。我创建了一个跟踪以稍后扩展它:

    var t9 = {
        x: [100821],
        y: [11],
        name: 'Some text',
        text: ['Some text'],
        mode: ['markers'],
        marker: [{
          size: [1531*10],
          sizeref: 2,
          sizemode: 'area'
        }]
      };
    var data = [t9];


var layout = {
  title: 'Chart',
  showlegend: true,
  xaxis: {
    title: 'Some text'
  },
  yaxis: {
    title: 'Some text'
  }
};

var config = {responsive: true}

Plotly.newPlot('plot', data, layout, config);



        Plotly.extendTraces(
          'plot', 
        {
          x: [[5491]],
          y: [[5]],
          text: [['Some text']],
          mode: [['markers']],
          marker: [[{
            size: 123*100,
            sizeref: 2,
            sizemode: 'area'
          }]]
        }, [0]);

        

        Plotly.extendTraces(
          'plot', 
        {
          x: [[60022]],
          y: [[11]],
          text: [['Some text']],
          mode: [['markers']],
          marker: [[{
            size: 982*100,
            sizeref: 2,
            sizemode: 'area'
          }]]
        }, [0]);
<head>
  <!-- Plotly.js -->
  <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<html>
  <body>
    <div id="plot"></div>
  </body>
</html>

结果是这样的:

如您所见,这些标记不具有 属性 mode: ['markers'] 和所有 markers: 属性。

知道如何获得此页面上的结果吗? https://plotly.com/javascript/bubble-charts/

  • 如果您使用 extendTraces 并希望更新属性,您需要以字符串形式提供此类标记大小的属性,例如marker.size 并且该值必须是一个数组,就像您的新 x 和 y 值一样。

    Plotly.extendTraces(
      'plot', 
      {
        x: [[5491]],
        y: [[5]],
        'marker.size':[[40*100]]
      }, [0]);
    
  • 您的初始数据和属性应该是一个简单的数组或对象,而不是 arrays/objects 的数组。

     var t9 = {
      x: [100821],
      y: [11],
      name: 'Some text',
      text: 'Some text',
      mode: 'markers',
      marker: {
        size: [15*100],
        sizeref: 1,
        sizemode: 'area'
      }
    };
    
    var data = [t9];
    
    var layout = {
      title: 'Chart',
      showlegend: true,
      xaxis: {
        title: 'Some text'
      },
      yaxis: {
        title: 'Some text',
        range: [-12, 30]
      }
    };
    
    var config = {responsive: true}
    
    Plotly.newPlot('plot', data, layout, config);
    
    
    Plotly.extendTraces(
      'plot', 
      {
        x: [[5491]],
        y: [[5]],
        'marker.size':[[40*100]]
      }, [0]);
    
    Plotly.extendTraces(
      'plot', 
      {
        x: [[60022]],
        y: [[11]],
       'marker.size':[[200*100]] 
      }, [0]);
    
    <head>
      <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
    </head>
    
    <div id='plot'>
    
    </div>