【问题标题】:google charts, change trendline equation parameter labels谷歌图表,更改趋势线方程参数标签
【发布时间】:2019-08-28 14:51:44
【问题描述】:

我想将方程参数标签(仅)从 AgeDiameter 更改为 YX(Age = 4.885 * Diameter + 0.73)(Y = 4.885 * X + 0.73) 在标题和工具提示内。

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

function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['Diameter', 'Age'],
    [8, 37], [4, 19.5], [11, 52], [4, 22], [3, 16.5], [6.5, 32.8], [14, 72]]);

  var options = {
    title: 'Age of sugar maples vs. trunk diameter, in inches',
    hAxis: {title: 'Diameter'},
    vAxis: {title: 'Age'},
    legend: {
      alignment: 'end',
      position: 'top'
    },
    series: {
      0: {
        visibleInLegend: true
      }
    },
    trendlines: {
      0: {
        visibleInLegend: true
      }
    }
  };

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

  google.visualization.events.addListener(chart, 'ready', function () {
    var equation = $('text[text-anchor="start"][fill="#222222"]').text();
    console.log(equation);
  });

  chart.draw(data, options);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>

有人可以帮帮我吗?

【问题讨论】:

    标签: javascript charts google-visualization jsapi pygooglechart


    【解决方案1】:

    没有标准选项,
    您需要手动更改图表的 'ready' 事件。

    但将列标签更改为'X', 'Y' 可能更容易,
    然后手动将系列标题改为'Age'...

    请参阅以下工作 sn-p...

    google.charts.load('current', {
      callback: drawChart,
      packages:['corechart']
    });
    
    function drawChart() {
      var data = google.visualization.arrayToDataTable([
        ['X', 'Y'],
        [8, 37], [4, 19.5], [11, 52], [4, 22], [3, 16.5], [6.5, 32.8], [14, 72]]);
    
      var options = {
        title: 'Age of sugar maples vs. trunk diameter, in inches',
        hAxis: {title: 'Diameter'},
        vAxis: {title: 'Age'},
        legend: {
          alignment: 'end',
          position: 'top'
        },
        series: {
          0: {
            visibleInLegend: true
          }
        },
        trendlines: {
          0: {
            visibleInLegend: true
          }
        }
      };
    
      var container = document.getElementById('chart_div');
      var chart = new google.visualization.ScatterChart(container);
    
      google.visualization.events.addListener(chart, 'ready', function () {
        var equation = $('text[text-anchor="start"][fill="#222222"]').get(0);
        equation.textContent = 'Age';
      });
    
      chart.draw(data, options);
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="chart_div"></div>

    编辑

    在工具提示中显示'Age'作为系列标题,
    您可以使用自定义工具提示。

    这里,数据视图用于添加工具提示列。

    var view = new google.visualization.DataView(data);
    view.setColumns([0, 1, {
      calc: function (dt, row) {
        return 'Age\n' + dt.getFormattedValue(row, 0) + ', ' + dt.getFormattedValue(row, 1);
      },
      role: 'tooltip',
      type: 'string'
    }]);
    

    请参阅以下工作 sn-p...

    google.charts.load('current', {
      callback: drawChart,
      packages:['corechart']
    });
    
    function drawChart() {
      var data = google.visualization.arrayToDataTable([
        ['X', 'Y'],
        [8, 37], [4, 19.5], [11, 52], [4, 22], [3, 16.5], [6.5, 32.8], [14, 72]
      ]);
    
      var view = new google.visualization.DataView(data);
      view.setColumns([0, 1, {
        calc: function (dt, row) {
          return 'Age\n' + dt.getFormattedValue(row, 0) + ', ' + dt.getFormattedValue(row, 1);
        },
        role: 'tooltip',
        type: 'string'
      }]);
    
      var options = {
        title: 'Age of sugar maples vs. trunk diameter, in inches',
        hAxis: {title: 'Diameter'},
        vAxis: {title: 'Age'},
        legend: {
          alignment: 'end',
          position: 'top'
        },
        series: {
          0: {
            visibleInLegend: true
          }
        },
        trendlines: {
          0: {
            visibleInLegend: true
          }
        }
      };
    
      var container = document.getElementById('chart_div');
      var chart = new google.visualization.ScatterChart(container);
    
      google.visualization.events.addListener(chart, 'ready', function () {
        var equation = $('text[text-anchor="start"][fill="#222222"]').get(0);
        equation.textContent = 'Age';
      });
    
      chart.draw(view, options);
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="chart_div"></div>

    【讨论】:

    • 谢谢您,感谢您的帮助,但我仍然需要将鼠标悬停在点上显示“年龄”,我仍然无法弄清楚如何。
    • 有没有办法以欧洲格式显示数字? @WhiteHat
    • 你试过调整locale吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多