【问题标题】:Google Charts Treemap Tooltip not working谷歌图表树形图工具提示不起作用
【发布时间】:2020-08-09 06:30:23
【问题描述】:

有人可以帮助我,为什么工具提示不可见?。我尝试使用“工具提示:{isHtml:true}”,但无法正常工作。任何帮助表示赞赏。

<script>
   google.charts.load('current', {'packages':['treemap']});
   google.setOnLoadCallback(drawChart);

   function drawChart() {
     var data = google.visualization.arrayToDataTable([
       ['Customer', 'Region', 'Sales', 'Score'],
       ['America',   null,         0,        0],
       ['Apple',     'America',    0,        0],
       ['VW',        'America',    0,        0],
       ['Costco',    'America',    0,        0],
       ['Amazon',    'America',    0,        0],

       ['1-Apple',   'Apple',      115.5,    0.70],
       ['2-Apple',   'Apple',      115.5,    0.70],
       ['3-Apple',   'Apple',      52.5,     0.70],
       ['1-VW',      'VW',         49,       0.45],
       ['2-VW',      'VW',         9.4,      0.39],
       ['3-VW',      'VW',         7.4,      0.35]
       ['1-Costco',  'Costco',     5.2,      0.3],
       ['1-Amazon',  'Amazon',     4.8,      0.3],
     ]);

     var options = {
        headerColor: '#dfe4e9',
        highlightOnMouseOver: true,
        maxDepth: 1,
        maxPostDepth: 4,
        minHighlightColor: '#FF8B30',
        midHighlightColor: '#FFC03C',
        maxHighlightColor: '#FFE730',
        minColor: '#29ECB4',
        midColor: '#00ACED',
        maxColor: '#09F6A9',
        headerHeight: 25,
        showScale: false,
        useWeightedAverageForAggregation: true,
        showTooltips: true,
        generateTooltip: showFullTooltip
     };

      var tree = new google.visualization.TreeMap(document.getElementById('grph'));
      tree.draw(data, options);
  }
</script>

这是工具提示的功能:

function showFullTooltip(row, size, value) {
   return 
      '<div style="z-index:1000000; background:#9daab6; padding:10px;">' +
      '<span><b>' + dataT.getValue(row, 0) + '</b>, ' + dataT.getValue(row, 1) + 
      ', ' + dataT.getValue(row, 2) + ', ' + dataT.getValue(row, 3) + '</span>' + 
      '<br>' +
      'Datatable row: ' + row + 
      '<br>' +
      dataT.getColumnLabel(2) + ' Sales: ' + size + 
      '<br>' +
      dataT.getColumnLabel(3) + ': ' + value + 
      ' </div>';
}

idk 如果问题是浮点数,但是是“数字”值并且似乎在配置中被接受。

【问题讨论】:

    标签: javascript html charts google-visualization


    【解决方案1】:

    我唯一能确定的是 html 字符串的第一行,
    需要与return 语句在同一行...

    return '<div style="z-index:1000000; background:#9daab6; padding:10px;">' +
    

    对比下面一行...

    return 
      '<div style="z-index:1000000; background:#9daab6; padding:10px;">' +
    

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

    google.charts.load('current', {
      packages: ['treemap']
    }).then(drawChart);
    
    function drawChart() {
      var data = google.visualization.arrayToDataTable([
       ['Customer', 'Region', 'Sales', 'Score'],
       ['America',   null,         0,        0],
       ['Apple',     'America',    0,        0],
       ['VW',        'America',    0,        0],
       ['Costco',    'America',    0,        0],
       ['Amazon',    'America',    0,        0],
       ['1-Apple',   'Apple',      115.5,    0.70],
       ['2-Apple',   'Apple',      115.5,    0.70],
       ['3-Apple',   'Apple',      52.5,     0.70],
       ['1-VW',      'VW',         49,       0.45],
       ['2-VW',      'VW',         9.4,      0.39],
       ['3-VW',      'VW',         7.4,      0.35],
       ['1-Costco',  'Costco',     5.2,      0.3],
       ['1-Amazon',  'Amazon',     4.8,      0.3],
      ]);
    
      var options = {
        headerColor: '#dfe4e9',
        highlightOnMouseOver: true,
        maxDepth: 1,
        maxPostDepth: 4,
        minHighlightColor: '#FF8B30',
        midHighlightColor: '#FFC03C',
        maxHighlightColor: '#FFE730',
        minColor: '#29ECB4',
        midColor: '#00ACED',
        maxColor: '#09F6A9',
        headerHeight: 25,
        showScale: false,
        useWeightedAverageForAggregation: true,
        showTooltips: true,
        generateTooltip: showFullTooltip
      };
    
      var tree = new google.visualization.TreeMap(document.getElementById('grph'));
      tree.draw(data, options);
    
      function showFullTooltip(row, size, value) {
       return '<div style="z-index:1000000; background:#9daab6; padding:10px;">' +
          '<span><b>' + data.getValue(row, 0) + '</b>, ' + data.getValue(row, 1) + 
          ', ' + data.getValue(row, 2) + ', ' + data.getValue(row, 3) + '</span>' + 
          '<br>' +
          'Datatable row: ' + row + 
          '<br>' +
          data.getColumnLabel(2) + ' Sales: ' + size + 
          '<br>' +
          data.getColumnLabel(3) + ': ' + value + 
          ' </div>';
      }
    }
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="grph"></div>

    注意:如果您使用的是 jsapi 加载程序,则不需要,请参阅上面的 sn-p...
    并且后面的数据后面少了一个逗号……

    ['3-VW',      'VW',         7.4,      0.35]
    

    但可能只在sn-p中,而不是你的代码,否则它不会运行......

    【讨论】:

    • 谢谢@WhiteHat。是的,您对工具提示函数中的第一行 HTML 行是正确的,应该与 return 语句相同,但仍然没有工作,所以第二行是 CSS 问题。我不得不修改来自图表的 div 作为主要工具提示,并添加一个 z-index 属性以便它可见。
    猜你喜欢
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多