Comment personnaliser les infobulles (texte et Format) dans les graphiques à barres de Vizualisation de Google?

j'utilise Google Visualisation Graphique À Barres et je voudrais personnaliser ou modifier le texte et le format de l'infobulletin qui apparaît en cliquant sur une barre.

j'ai parcouru la documentation mais je n'ai pas trouvé de moyen de mettre en oeuvre ce. Savez-vous:

  1. Est-il possible<!--4?
  2. dans l'affirmative, pouvez-vous fournir des exemples de codes ?
23
demandé sur WMios 2010-01-15 03:26:46

11 réponses

Vous pouvez changer la façon dont le nombre est formaté en utilisant le google.visualization.NumberFormat classe.

var formatter = new google.visualization.NumberFormat({
    fractionDigits: 0,
    prefix: '$'
});

formatter.format(data, 1); // Apply formatter to second column.

Si vous avez besoin de plus de flexibilité, avoir un regard sur l' PatternFormat classe.

Voici le référence API.

28
répondu Richard Poole 2010-11-09 01:05:58

Créer un nouveau type de données pour ce que vous voulez dans la pointe de l'outil:

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

Maintenant, ajoutez les informations que vous voulez dans votre tooltip à vos données:

['$FormatedWeekday', $SalesAll,'$ToolTip']
['$FormatedWeekday', $SalesAll,'$ToolTip']
['$FormatedWeekday', $SalesAll,'$ToolTip']

Vous perdrez toutes les données par défaut dans votre péage de pointe de sorte que vous pouvez vous ré-emballage:

$ToolTip = ''.$FormatedWeekday.' \u000D\u000A '.$SalesAll.' \u000D\u000A '."Red Cross  Event";

le" \u000D\u000A " force une rupture de ligne

4
répondu Craig Van Sant 2012-03-07 01:41:13

j'essayais de faire la même chose avec un diagramme à secteurs de Google. Avec le code original, sur mouseover, le tooltip montrait l'étiquette, le nombre brut, et le pourcentage.

le code d'origine était:

données.setValue(0, 0, 'les arbres de Noël');

données.setValue(0, 1, 410000000);

et le tooltip indiquerait " arbres de Noël 410000000 4,4%."

pour formater le texte, j'ai ajouté une ligne au code, donc est:

données.setValue(0, 0, 'les arbres de Noël');

données.setValue(0, 1, 410000000);

données.setFormattedValue(0, 1, "410 millions de dollars");

Le résultat a été une info-bulle qui a lu, "les arbres de Noël de 410 millions de 4,4%"

j'espère que cela aide!

3
répondu Katy 2010-09-28 19:52:10

Google Chart ne supporte pas le format HTML tooltip LineChart, BarChart. J'utilise:

google.visualization.events.addListener(chart, 'onmouseover', function(rowColumn){
                                myFunction();
                            });

myFunction(): vous pouvez utiliser popup pour afficher plus d'informations.

3
répondu GaCon 2012-09-24 13:34:13

il y a une façon très facile de le faire, vous avez juste à utiliser l'un des Formatters pour les données:

// 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);

vous formatez simplement l'axe différemment du format de données, puisque le format de données ne se présentera que lorsque vous mouseOver.

3
répondu Adam 2012-11-14 16:20:22

une autre façon de le faire est d'ajouter une autre colonne à vos données qui fera office de tooltip.

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});
}
2
répondu minaz 2012-03-15 20:53:31

POUR INFORMATION, tous:

Google a ajouté des infobulles HTML/CSS personnalisées en septembre 2012: https://google-developers.appspot.com/chart/interactive/docs/customizing_tooltip_content

2
répondu Nate 2013-01-15 16:17:50

on dirait que vous êtes maintenant capable de personnaliser le texte tooltip en ajoutant une colonne spéciale qui a role: 'tooltip': https://developers.google.com/chart/interactive/docs/customizing_tooltip_content

2
répondu Raibaz 2013-06-21 13:42:55

je cherchais aussi la même option. Semble comme il n'y a pas de manière directe. Mais nous pouvons désactiver le tooltip par défaut et faire apparaître notre propre version en utilisant SelectHandler. Faites-nous savoir si vous avez trouvé une plus mieux/plus directe. Merci

0
répondu MVK 2010-02-12 19:25:00

le seul moyen que j'ai trouvé pour le désactiver était de traverser le DOM dans le gestionnaire de vol stationnaire (pour les diagrammes circulaires de toute façon):

$(pie.Ac.firstElementChild.contentDocument.childNodes[0].childNodes[2].childNodes[1].firstChild.childNodes[2]).remove();

qui est hideux et soumis à Google de maintenir la structure qui existe... est-il un meilleur moyen?

0
répondu Steve Pike 2010-09-15 07:32:59

jetez un coup d'oeil aux rôles datables et à l'exemple tooltip: 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,    '.4M expenses
                       in 2004'                     in 2004'
     '2005',       1170, '1.17M$ sales,          460,    '.46M expenses
                        in 2005'                    in 2005'
     '2006',        660,  '.66M$ sales,         1120,    '.12M expenses
                        in 2006'                    in 2006'
     '2007',       1030, '1.03M$ sales,          540,    '.54M expenses
                        in 2007'                    in 2007'

null les étiquettes sont utilisées comme outil pour les "ventes" et les "dépenses" respectivement.

0
répondu user1695140 2012-09-26 08:11:13