Reputation: 2481
I have a Google GeoChart with custom HTML tooltip.
All is fine except that tooltip title won't go away
google.charts.load('current', {
'packages': ['geochart'],
'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY'
});
google.charts.setOnLoadCallback(drawRegionsMap);
function drawRegionsMap() {
var data = google.visualization.arrayToDataTable([
[
{label: 'Country', type: 'string'},
{label: 'Popularity', type: 'number'},
{label: 'Tooltip', 'type': 'string', 'role': 'tooltip', 'p': {'html': true}}
],
['Germany', 200, makeTooltip('Germany', 200)],
['United States', 300, makeTooltip('USA', 300)],
['Brazil', 400, makeTooltip('Brazil', 400)],
['Canada', 500, makeTooltip('Canada', 500)],
['France', 600, makeTooltip('France', 600)],
['RU', 700, makeTooltip('Russia', 700)]
]);
var options = {
legend: 'none',
tooltip: {isHtml: true}
};
function makeTooltip(label, value){
return '<div style="padding:10px;border:1px solid red">'+label+'<hr>'+value+'</div>';
}
var chart = new google.visualization.GeoChart(document.getElementById('regions_div'));
chart.draw(data, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="regions_div"></div>
The same configuration with a Bar Chart works perfectly
google.charts.load('current', {
'packages': ['corechart'],
'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY'
});
google.charts.setOnLoadCallback(drawRegionsMap);
function drawRegionsMap() {
var data = google.visualization.arrayToDataTable([
[
{label: 'Country', type: 'string'},
{label: 'Popularity', type: 'number'},
{label: 'Tooltip', 'type': 'string', 'role': 'tooltip', 'p': {'html': true}}
],
['Germany', 200, makeTooltip('Germany', 200)],
['United States', 300, makeTooltip('USA', 300)],
['Brazil', 400, makeTooltip('Brazil', 400)],
['Canada', 500, makeTooltip('Canada', 500)],
['France', 600, makeTooltip('France', 600)],
['RU', 700, makeTooltip('Russia', 700)]
]);
var options = {
legend: 'none',
tooltip: {isHtml: true}
};
function makeTooltip(label, value){
return '<div style="padding:10px;border:1px solid red">'+label+'<hr>'+value+'</div>';
}
var chart = new google.visualization.ColumnChart(document.getElementById('regions_div'));
chart.draw(data, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="regions_div"></div>
What am I missing? An answer to my similar problem suggest to add showTitle: false
, but it does not work... Should I really deal with CSS to hide the title?
Thanks
Upvotes: 2
Views: 182
Reputation: 61222
it's an issue specific to GeoChart.
you can remove by using object notation on the first column.
provide the value, and a blank formatted value.
{v: 'Germany', f: ''}
see following working snippet...
google.charts.load('current', {
'packages': ['geochart'],
'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY'
});
google.charts.setOnLoadCallback(drawRegionsMap);
function drawRegionsMap() {
var data = google.visualization.arrayToDataTable([
[
{label: 'Country', type: 'string'},
{label: 'Popularity', type: 'number'},
{label: 'Tooltip', 'type': 'string', 'role': 'tooltip', 'p': {'html': true}}
],
[{v: 'Germany', f: ''}, 200, makeTooltip('Germany', 200)],
[{v: 'United States', f: ''}, 300, makeTooltip('USA', 300)],
[{v: 'Brazil', f: ''}, 400, makeTooltip('Brazil', 400)],
[{v: 'Canada', f: ''}, 500, makeTooltip('Canada', 500)],
[{v: 'France', f: ''}, 600, makeTooltip('France', 600)],
[{v: 'RU', f: ''}, 700, makeTooltip('Russia', 700)]
]);
var options = {
legend: 'none',
tooltip: {isHtml: true, trigger: 'both'}
};
function makeTooltip(label, value){
return '<div style="padding:10px;border:1px solid red">'+label+'<hr>'+value+'</div>';
}
var chart = new google.visualization.GeoChart(document.getElementById('regions_div'));
chart.draw(data, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="regions_div"></div>
Upvotes: 3