此代码创建一个散点图,上面带有饼图的图像。

我在使数据行条目显示在散点图的轴上时遇到问题。

关于如何实现这一点的任何想法?

非常感谢 :)

google.charts.load('current', {'packages':['corechart']});
         function draw0hedgeChart() {   var data = new google.visualization.DataTable();   data.addColumn('number', 'X');   data.addColumn('number', 'Y');

     data.addRows([    [ 9.87,      6.53],   ]);

        var options = {
            colors: ['#000000'],
            legend: 'none',
              title: 'Risk vs. Return with 0% Hedge Fund',
              hAxis: {title: 'Risk', minValue: 3, maxValue: 11, gridlineColor: '#fff', direction: -1},
              vAxis: {title: 'Return', minValue: 4, maxValue: 10, gridlineColor: '#fff'},
              width:900,
              height:500
            };


      var container = document.getElementById('chart0_div');

      var chart = new google.visualization.ScatterChart(container);

      google.visualization.events.addListener(chart, 'ready', function () {
        var layout = chart.getChartLayoutInterface();

        for (var i = 0; i < data.getNumberOfRows(); i++) {

            var xPos = layout.getXLocation(data.getValue(i, 0));
            var yPos = layout.getYLocation(data.getValue(i, 1));

            var widget0 = container.appendChild(document.createElement('img'));
            widget0.src = 'img/0.png';
            widget0.className = 'chart0';

            // (overlay the dot)
            widget0.style.top = (yPos - 50) + 'px';
            widget0.style.left = (xPos - 50) + 'px';

        }   });

      chart.draw(data, options); }

最佳答案

我认为您可能是指configuration options

{hAxis,vAxis,hAxes.*,vAxes.*}.ticks


  hAxis.ticks-用指定的数组替换自动生成的X轴刻度。数组的每个元素应为有效的刻度值(例如数字,日期,日期时间或timeofday)


例如



google.charts.load('current', {
  callback: draw0hedgeChart,
  packages: ['corechart']
});

function draw0hedgeChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'X');
  data.addColumn('number', 'Y');
  data.addRows([
    [9.87, 6.53],
  ]);

  var ticksX = [];
  var ticksY = [];
  for (var i = 0; i < data.getNumberOfRows(); i++) {
    ticksX.push(data.getValue(i, 0));
    ticksY.push(data.getValue(i, 1));
  }

  var options = {
    colors: ['#000000'],
    legend: 'none',
    title: 'Risk vs. Return with 0% Hedge Fund',
    hAxis: {
      title: 'Risk',
      minValue: 3,
      maxValue: 11,
      //gridlineColor: '#fff',
      direction: -1,
      ticks: ticksX
    },
    vAxis: {
      title: 'Return',
      minValue: 4,
      maxValue: 10,
      //gridlineColor: '#fff',
      ticks: ticksY
    },
    width:900,
    height:500
  };

  var container = document.getElementById('chart0_div');
  var chart = new google.visualization.ScatterChart(container);

  google.visualization.events.addListener(chart, 'ready', function () {
    var layout = chart.getChartLayoutInterface();

    for (var i = 0; i < data.getNumberOfRows(); i++) {
      var xPos = layout.getXLocation(data.getValue(i, 0));
      var yPos = layout.getYLocation(data.getValue(i, 1));

      var widget0 = container.appendChild(document.createElement('img'));
      widget0.src = 'http://findicons.com/files/icons/512/star_wars/16/clone_old.png';
      widget0.className = 'chart0';

      // (overlay the dot)
      widget0.style.position = 'absolute';
      widget0.style.top = yPos + 'px';
      widget0.style.left = xPos + 'px';
    }
  });

  chart.draw(data, options);
}

<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart0_div"></div>

10-06 00:41