我正在使用Google Visualization Bar Chart,我想自定义或更改点击栏时显示的工具提示文字和格式。
我一直在阅读文档,但我没有找到实现的方法 这个。你知道吗:
答案 0 :(得分:28)
您可以使用google.visualization.NumberFormat
类更改数字的格式。
var formatter = new google.visualization.NumberFormat({
fractionDigits: 0,
prefix: '$'
});
formatter.format(data, 1); // Apply formatter to second column.
如果您需要更多灵活性,请查看PatternFormat
类。
答案 1 :(得分:4)
在工具提示中为您想要的内容创建一个新数据类型:
var data = new google.visualization.DataTable();
data.addColumn('string', 'Game');
data.addColumn('number', 'Transactions');
data.addColumn({type:'string', role:'tooltip'}); // here is the tooltip line
现在将工具提示中所需的信息添加到数据中:
['$FormatedWeekday', $SalesAll,'$ToolTip']
['$FormatedWeekday', $SalesAll,'$ToolTip']
['$FormatedWeekday', $SalesAll,'$ToolTip']
您将丢失收费提示中的所有默认数据,因此您可能需要重新打包它:
$ToolTip = ''.$FormatedWeekday.' \u000D\u000A '.$SalesAll.' \u000D\u000A '."Red Cross Event";
“\ u000D \ u000A”强制换行
答案 2 :(得分:3)
我试图用谷歌饼图做类似的事情。使用原始代码,在鼠标悬停时,工具提示显示标签,原始数字和百分比。
原始代码是:
data.setValue(0,0,'Christmas trees');
data.setValue(0,1,41000000);
工具提示会显示“圣诞树410000000 4.4%。”
为了格式化文本,我在代码中添加了一行,所以它是:
data.setValue(0,0,'Christmas trees');
data.setValue(0,1,41000000);
data.setFormattedValue(0,1,“$ 4.1亿”);
结果是一个工具提示,上面写着“圣诞树4.1亿美元4.4%”
我希望这有帮助!
答案 3 :(得分:3)
Google Chart不支持格式化html工具提示LineChart,BarChart。 我用:
google.visualization.events.addListener(chart, 'onmouseover', function(rowColumn){
myFunction();
});
myFunction()
中的:您可以使用popup
来显示更多信息。
答案 4 :(得分:3)
有一种非常简单的方法,您只需使用Formatters
之一来获取数据:
// Set chart options
var options = {
hAxis: {format: 'MMM dd, y'}
};
// Format the data
var formatter = new google.visualization.DateFormat({pattern:'EEEE, MMMM d, y'});
formatter.format(data,0);
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.AreaChart(document.getElementById('visualization'));
chart.draw(data, options);
您只需将数据格式设置为与数据格式不同,因为数据格式只会在您鼠标移动时显示。
答案 5 :(得分:3)
看起来您现在可以通过添加role: 'tooltip'
的特殊列来自定义工具提示文本:https://developers.google.com/chart/interactive/docs/customizing_tooltip_content
答案 6 :(得分:2)
另一种方法是在数据中添加另一列作为工具提示。
function drawVisualization() {
data = new google.visualization.DataTable()
data.addColumn('string', 'Date');
data.addColumn('number');
data.addColumn({type:'string',role:'tooltip'});
data.addRow();
base = 10;
data.setValue(0, 0, 'Datapoint1');
data.setValue(0, 1, base++);
data.setValue(0, 2, " This is my tooltip1 ");
data.addRow();
data.setValue(1, 0, 'Datapoint2');
data.setValue(1, 1, base++);
data.setValue(1, 2, "This is my second tooltip2");
// Draw the chart.
var chart = new google.visualization.BarChart(document.getElementById('visualization'));
chart.draw(data, {legend:'none', width:600, height:400});
}
答案 7 :(得分:2)
仅供参考,全部:
Google于2012年9月添加了自定义HTML / CSS工具提示: https://google-developers.appspot.com/chart/interactive/docs/customizing_tooltip_content
答案 8 :(得分:0)
我也在寻找同样的选择。好像没有任何直接的方法。但我们可以使用SelectHandler禁用默认工具提示并弹出我们自己的版本。如果您想出更好/更直接的方式,请告诉我们。感谢
答案 9 :(得分:0)
我发现禁用它的唯一方法是遍历悬停处理程序中的DOM(无论如何都是饼图):
$(pie.Ac.firstElementChild.contentDocument.childNodes [0] .childNodes [2] .childNodes [1] .firstChild.childNodes [2])删除();
哪个是丑陋的,并且受谷歌维护存在的结构... 有更好的方法吗?
答案 10 :(得分:0)
查看DataTable角色和工具提示示例:https://developers.google.com/chart/interactive/docs/roles
label: 'Year', 'Sales', null, 'Expenses', null
`role: domain, data, tooltip, data, tooltip`
'2004', 1000, '1M$ sales, 400, '$0.4M expenses
in 2004' in 2004'
'2005', 1170, '1.17M$ sales, 460, '$0.46M expenses
in 2005' in 2005'
'2006', 660, '.66M$ sales, 1120, '$1.12M expenses
in 2006' in 2006'
'2007', 1030, '1.03M$ sales, 540, '$0.54M expenses
in 2007' in 2007'
null 标签分别用作“销售”和“费用”的工具提示。