【问题标题】:adding tooltips to google visualization bar chart向谷歌可视化条形图添加工具提示
【发布时间】:2015-04-19 03:25:27
【问题描述】:

我正在尝试将自定义工具提示添加到 Google 条形图,但我不知道如何执行此操作。 Google 提供了一个很好的教程(https://developers.google.com/chart/interactive/docs/customizing_tooltip_content),但它只讨论柱形图,而不是条形图。

我的代码如下所示:

<div id="top_x_div" style="width: 900px; height: 500px;"></div>
google.load("visualization", "1.1",{packages:["bar"]});
google.setOnLoadCallback(drawStuff0);

function drawStuff0() {
   var data = new google.visualization.arrayToDataTable([$data]);
   var options = {
       title: 'Categories',
       width: 900,
       legend: { position: 'none' },
       chart: { title: 'popularity by number of queries',
                subtitle: 'Number of times a category was queried' },
       bars: 'horizontal', // Required for Material Bar Charts.
       axes: {
                x: {
                    0: { side: 'top', label: 'Number of times a category was queried'} // Top x-axis.
                }
             },
       bar: { groupWidth: "90%" }
   };

   var chart = new google.charts.Bar(document.getElementById('top_x_div0'));

   // Convert the Classic options to Material options.
   chart.draw(data, google.charts.Bar.convertOptions(options));
};

$data 只是一个包含图表行的 PHP 变量。

有人能解释一下如何在此图表中添加自定义工具提示吗? 我在网上到处寻找解决方案,但我一直找不到...

【问题讨论】:

    标签: javascript charts google-visualization


    【解决方案1】:

    向 DataTable 对象添加一个角色为tooltip 的新列:

    data.addColumn({type: 'string', role: 'tooltip'});
    

    然后遍历data 并为每一行添加您想要的任何工具提示(示例来自下面的一个柱形图小提琴):

    for (var i=0; i<data.getNumberOfRows(); i++) {
       data.setValue(i, 2, 'Tooltip #'+i);
    }
    

    演示 -> http://jsfiddle.net/pc3zmb8w/

    我无法更准确地指导您,因为我们不知道您的 PHP $data 是什么或您的图表是什么样的。但这基本上是你应该做的,在所有情况下,当你想动态地将自定义工具提示添加到图表时......


    更新 - 设置工具提示样式

    至于“有没有办法让工具提示显示为矩形,而不是语音简介”,在选项中 - 将 tooltip 设置为 isHtml : p>

    var options = {
        tooltip: {isHtml: true} 
    }
    

    然后工具提示显示为一个矩形,就像普通的 HTML 元素工具提示一样。您还可以指定要在工具提示本身内使用 HTML:

    data.addColumn({type: 'string', role: 'tooltip', p: {'html': true}});
    

    例如,以普通工具提示的颜色显示工具提示,但使用更大的字体大小和特定字体:

    div.tooltip {
        background-color: #ffffca;
        color: #000023;
        padding: 10px;
        font-size: 20px;
        font-family : 'arial';
    }
    

    将工具提示设置为原始答案:

    data.setValue(i, 2, '<div class="tooltip">Tooltip #'+i+'</div>');
    

    演示 -> http://jsfiddle.net/yhhhcj2f/

    【讨论】:

    • 非常感谢这个例子,它很有帮助!这是我希望我的图表看起来像的图片:i61.tinypic.com/9hn9m0.jpg。您知道如何在添加您提供的代码的同时保留该图表的“外观”(字体、大小等)吗?另外,有没有办法让工具提示显示为矩形,而不是语音简介?
    • @JMS,您的链接中没有图片
    • @JMS,这可能是该图像服务器上的缓存问题。我无法通过查看图像来判断字体、大小、颜色等。它对我来说看起来完全标准,顺便说一句,与工具提示关系不大 :) 但我可以告诉你如何使用谷歌可视化获得矩形工具提示以及如何设置它们的样式,请参阅更新。
    • 很好的答案,非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多