web-dev-qa-db-ja.com

Google Visualization棒グラフのツールチップ(テキストとフォーマット)をカスタマイズするにはどうすればよいですか?

Google Visualization Bar Chart を使用していますが、ツールチップのテキストと形式をカスタマイズまたは変更バーをクリックすると表示されます。

ドキュメントを確認しましたが、これを実装する方法が見つかりませんでした。あなたは知っていますか:

  1. それも可能ですか
  2. もしそうなら、いくつかのコード例を提供できますか?
23
fabien7474

google.visualization.NumberFormatクラスを使用して、数値のフォーマット方法を変更できます。

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

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

さらに柔軟性が必要な場合は、PatternFormatクラスをご覧ください。

これが APIリファレンス です。

28
Richard Poole

ツールチップで必要なものの新しいデータ型を作成します。

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」は改行を強制します

4
Craig Van Sant

これを行うには非常に簡単な方法があります。データにFormattersの1つを使用するだけです。

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

データ形式はマウスオーバーしたときにのみ表示されるため、データ形式とは異なる方法で軸をフォーマットするだけです。

3
Adam

私はGoogleの円グラフで同様のことをしようとしていました。元のコードでは、マウスオーバー時に、ツールチップにラベル、生の数値、およびパーセンテージが表示されていました。

元のコードは次のとおりです。

data.setValue(0、0、 'クリスマスツリー');

data.setValue(0、1、410000000);

また、ツールチップには「クリスマスツリー4100000004.4%」と表示されます。

テキストをフォーマットするために、コードに行を追加したので、次のようになりました。

data.setValue(0、0、 'クリスマスツリー');

data.setValue(0、1、410000000);

data.setFormattedValue(0、1、 "4億1000万ドル");

その結果、「クリスマスツリーは4億1000万ドル4.4%」というツールチップが作成されました。

これがお役に立てば幸いです。

3
Katy

role: 'tooltip'https://developers.google.com/chart/interactive/docs/customizing_tooltip_content を持つ特別な列を追加することで、ツールチップテキストをカスタマイズできるようになりました。

3
Raibaz

Google Chartは、フォーマットhtmlツールチップLineChart、BarChartをサポートしていません。私が使う:

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

myFunction()内:popupを使用して詳細情報を表示できます。

3
GaCon

これを行う別の方法は、ツールチップとして機能する別の列をデータに追加することです。

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
minaz

参考までに、すべて:

Googleは2012年9月にカスタムHTML/CSSツールチップを追加しました: https://google-developers.appspot.com/chart/interactive/docs/customizing_tooltip_content

2
Nate

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ラベルは、それぞれ「Sales」と「Expenses」のツールチップとして使用されます。

0
user1695140

私も同じオプションを探していました。直接的な方法はないようです。ただし、SelectHandlerを使用して、デフォルトのツールチップを無効にし、独自のバージョンをポップアップすることができます。より良い/直接的な方法を見つけた場合はお知らせください。ありがとう

0
MVK

それを無効にする唯一の方法は、ホバーハンドラーでDOMをトラバースすることでした(とにかく円グラフの場合):

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

どれが恐ろしく、Googleが存在する構造を維持することを条件としています...より良い方法はありますか?

0
Steve Pike