charts - Google Charts hAxis:如何在信息框中添加文本?
解决方案
使用数据表中的对象表示法,
我们可以提供每个单元格的值 ( v:
) 和格式化值 ( f:
)
。
{v: 12, f: 'Days: 12'}
默认情况下,工具提示将显示格式化的值。
请参阅以下工作片段...
google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var chart_data = [
['x', 'Times'],
[0, 0],
[2, 0],
[4, 0],
[6, 0],
[8, 0],
[10, 0],
[{v: 12, f: 'Days: 12'}, 22],
[14, 0],
[16, 0],
];
var data = google.visualization.arrayToDataTable(chart_data);
var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
chart.draw(data, {
height: 400
});
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
编辑
没有任何选项可以更改默认工具提示。
但是我们可以添加我们自己的自定义工具提示。
首先,我们需要在数据中添加另一列。
在这个例子中。我使用数据视图。
// create view with tooltip column
var view = new google.visualization.DataView(data);
view.setColumns([0, 1, { // <-- add column indexes for original columns
// build custom tooltip column
calc: function (dt, row) {
var tooltip = '<div class="ggl-tooltip">';
tooltip += '<div>' + dt.getColumnLabel(0) + ': ';
tooltip += dt.getFormattedValue(row, 0) + '</div>';
tooltip += '<div>' + dt.getColumnLabel(1) + ': ';
tooltip += dt.getFormattedValue(row, 1) + '</div>';
tooltip += '</div>';
return tooltip;
},
p: {html: true},
role: 'tooltip',
type: 'string'
}]);
我们需要一些东西,
首先,在工具提示列上,我们需要为...指定一个属性
p: {html: true},
在选项中,我们需要设置...
tooltip: {
isHtml: true
}
请参阅以下工作片段...
google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var chart_data = [
['Days', 'Times'],
[0, 0],
[2, 0],
[4, 0],
[6, 0],
[8, 0],
[10, 0],
[12, 22],
[14, 0],
[16, 0],
];
var data = google.visualization.arrayToDataTable(chart_data);
// create view with tooltip column
var view = new google.visualization.DataView(data);
view.setColumns([0, 1, { // <-- add column indexes for original columns
// build custom tooltip column
calc: function (dt, row) {
var tooltip = '<div class="ggl-tooltip">';
tooltip += '<div>' + dt.getColumnLabel(0) + ': ';
tooltip += dt.getFormattedValue(row, 0) + '</div>';
tooltip += '<div>' + dt.getColumnLabel(1) + ': ';
tooltip += dt.getFormattedValue(row, 1) + '</div>';
tooltip += '</div>';
return tooltip;
},
p: {html: true},
role: 'tooltip',
type: 'string'
}]);
var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
chart.draw(view.toDataTable(), {
height: 400,
tooltip: {
isHtml: true
}
});
});
.ggl-tooltip {
border: 1px solid #E0E0E0;
font-family: Arial, Helvetica;
font-size: 10pt;
padding: 8px 8px 8px 8px;
}
.ggl-tooltip div {
padding: 4px 4px 4px 4px;
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
注意:使用具有列属性的数据视图时存在错误。
绘制时,列属性不会传递到图表中。
所以我们必须在绘制之前将视图转换回数据表。
(见上面的片段)
view.toDataTable()
推荐阅读
- awk - awk 中的更多条件;根据条件添加列
- git - 将 git log 限制为在某个分支期间提交
- spring - oswsssupport.KeyStoreFactoryBean : 创建空密钥库
- html - 如何使用animejs在Html5画布中实现移动字母动画
- wso2 - 我们可以在 x-mediation-script 中使用 $ref 吗?
- java - Spring boot 2.0.5项目CORS问题:将CORS头添加到http响应中
- java - 2个具有相同ID的类如何更改属性并在两者中反映
- mariadb - MariaDB 10.3 序列编号的间隙
- react-native - 重定向到另一个页面之前的异步存储
- ruby-on-rails - 是否可以将文本列更改为整数支持的枚举而无需停机?