向 google 可视化条形图添加工具提示
adding tooltips to google visualization bar chart
我正在尝试向 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 变量。
有人可以解释一下如何向该图表添加自定义工具提示吗?
我在网上到处寻找解决方案,但一直找不到...
向具有角色 tooltip
的 DataTable 对象添加一个新列:
data.addColumn({type: 'string', role: 'tooltip'});
然后遍历 data
并为每一行添加您想要的任何工具提示(示例来自下面的一列条形图 fiddle):
for (var i=0; i<data.getNumberOfRows(); i++) {
data.setValue(i, 2, 'Tooltip #'+i);
}
演示 -> http://jsfiddle.net/pc3zmb8w/
我无法更准确地指导您,因为我们不知道您的 PHP $data
是什么,也不知道您的图表是什么样的。但这基本上是您应该做的,在所有情况下,当您想要动态地将自定义工具提示添加到图表时...
更新 - 工具提示样式
至于“有没有办法让工具提示显示为矩形,而不是语音提示”,在选项中 - 设置 tooltip
作为 isHtml
:
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>');
我正在尝试向 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 变量。
有人可以解释一下如何向该图表添加自定义工具提示吗? 我在网上到处寻找解决方案,但一直找不到...
向具有角色 tooltip
的 DataTable 对象添加一个新列:
data.addColumn({type: 'string', role: 'tooltip'});
然后遍历 data
并为每一行添加您想要的任何工具提示(示例来自下面的一列条形图 fiddle):
for (var i=0; i<data.getNumberOfRows(); i++) {
data.setValue(i, 2, 'Tooltip #'+i);
}
演示 -> http://jsfiddle.net/pc3zmb8w/
我无法更准确地指导您,因为我们不知道您的 PHP $data
是什么,也不知道您的图表是什么样的。但这基本上是您应该做的,在所有情况下,当您想要动态地将自定义工具提示添加到图表时...
更新 - 工具提示样式
至于“有没有办法让工具提示显示为矩形,而不是语音提示”,在选项中 - 设置 tooltip
作为 isHtml
:
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>');