【问题标题】:Google Charts: Data in the axis谷歌图表:轴中的数据
【发布时间】:2017-04-21 14:18:48
【问题描述】:

这段代码创建了一个散点图,上面有一个饼图的图像。

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

知道如何实现吗?

非常感谢:)

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 for hAxis.ticks & vAxis.ticks
  • 让我尝试用不同的词来解释:想要添加数据的值,data.addRows([ [ 9.87, 6.53], ]); , 显示在轴上……这有意义吗?

标签: javascript charts google-visualization axis axis-labels


【解决方案1】:

认为你可能指的是configuration options for ...

{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>

【讨论】:

  • 是这个,但也显示了另一个轴的散点图
  • 对不起,请不要跟随——上面画了一个散点图,x 和 y 轴都有标签——其他轴是什么?你有示例图片吗?
  • okkk,抱歉,每个轴需要有特定范围的值,而不仅仅是与数据行相关的值
  • 您可以在上面的刻度数组中添加任何需要的值——必须提供您自己的值或使用默认值
  • 那么他们需要用那些奇怪的线条出现,还是这些线条只能应用于 addrow 值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多