javascript - 谷歌图表绘制不需要的值

标签 javascript charts google-visualization

我的网页中有一个 Google 图表,绘制了用户输入的值(结果 1 和结果 2)。
我无法删除值[0,0]。如果这样做,图表将不会呈现,但如果我将它们留在其中,则 x 和 y 轴上的 0 点上会有一个绘图点。
我需要图表来绘制 [result1, result2]

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

function drawChart() {
  "use strict";
  var result1 = document.getElementById('finalScore').value;
  var result2 = document.getElementById('finalScoreD').value;

  var data = google.visualization.arrayToDataTable([
    ['Quality', 'Delivery'],
    [ 0, 0],
    [ 'result1',  'result2']
  ]);

  var options = {
    title: '',
    hAxis: {title: 'Quality', minValue: 0, maxValue: 1, gridlines: { count: 3, color: '#000000' }, titleTextStyle: {italic: false}},
    vAxis: {title: 'Delivery', minValue: 0, maxValue: 1, gridlines: { count: 3, color: '#000000'}, titleTextStyle: {italic: false}},
    width: 370,
    height: 300,
    colors: ['#6db33f'],
    pointSize: 30,
    pointShape: 'circle',
    fontName: 'proximaNovaLight',
    fontSize: '15',
    backgroundColor: { fill:'transparent' },
    legend: 'none',
  };

  var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
}

最佳答案

有几个问题......

首先,使用的是值'result1''result2',而不是实际的变量值

这个
['结果1','结果2']

应该是
[结果1,结果2]

接下来,输入字段值需要转换为数字。
您可以使用parseFloat
parseFloat(document.getElementById('finalScore').value)

请记住,如果输入数字以外的内容,您可能会收到错误
使用 isNaN 验证数字

进行这些更改后,不再需要 [0, 0]

请参阅以下工作片段...

google.charts.load('current', {
  callback: function () {
    "use strict";

    document.getElementById('drawFinalScore').addEventListener('click', drawChart, false);
    drawChart();

    function drawChart() {
      var result1 = parseFloat(document.getElementById('finalScore').value);
      if (isNaN(result1)) {
        result1 = 0;
      }
      var result2 = parseFloat(document.getElementById('finalScoreD').value);
      if (isNaN(result2)) {
        result1 = 0;
      }

      var data = google.visualization.arrayToDataTable([
        ['Quality', 'Delivery'],
        [result1, result2]
      ]);

      var options = {
        title: '',
        hAxis: {title: 'Quality', minValue: 0, maxValue: 1, gridlines: { count: 3, color: '#000000' }, titleTextStyle: {italic: false}},
        vAxis: {title: 'Delivery', minValue: 0, maxValue: 1, gridlines: { count: 3, color: '#000000'}, titleTextStyle: {italic: false}},
        width: 370,
        height: 300,
        colors: ['#6db33f'],
        pointSize: 30,
        pointShape: 'circle',
        fontName: 'proximaNovaLight',
        fontSize: '15',
        backgroundColor: { fill:'transparent' },
        legend: 'none',
      };

      var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
      chart.draw(data);
    }
  },
  packages: ['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<input id="finalScore" type="text" value="1" />
<input id="finalScoreD" type="text" value="1" />
<input id="drawFinalScore" type="button" value="Draw" />
<div id="chart_div"></div>

关于javascript - 谷歌图表绘制不需要的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38611609/

相关文章:

javascript - 在 puppeteers 监听器 page.on 的回调之外捕获错误

javascript - 新日期不是一个对象?

c# - 在 highcharts 中的图表 Canvas 外部显示图表图例

javascript - 如何在同一个html上绘制2个谷歌图表

javascript - 谷歌图表 : Overlapping bars - bring latest to front

javascript - 更新数组中的 1 个元素会触发 React 中其他元素的渲染吗?

javascript - 如何更改 Javascript 的默认日期格式?

c# - 如何将c#极坐标图的方向顺时针改为逆时针?

javascript - 如何在多个函数中设置参数,然后将其切换并保留

javascript - 使用java脚本选择Google图表数据来更改数据的系列