質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Charts

Google Chartsは、円グラフ・棒グラフ・折れ線グラフなどのさまざまなグラフをJavaScriptで容易に表示できる無料のライブラリ。デザインやイベント処理といったカスタマイズができ、商用利用も可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1822閲覧

Google Charts の散布図のツールチップをカスタマイズしたい

kazunii_ac

総合スコア20

Google Charts

Google Chartsは、円グラフ・棒グラフ・折れ線グラフなどのさまざまなグラフをJavaScriptで容易に表示できる無料のライブラリ。デザインやイベント処理といったカスタマイズができ、商用利用も可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/08/01 10:45

実現したいこと

Google Chartsの散布図で、ツールチップに表示される文字列をカスタマイズしたいです。
例えば下記URLの最初の散布図ですが、

https://developers.google.com/chart/interactive/docs/gallery/scatterchart

データの点にカーソルを当てると、「Weight」の文字と、weightの数値、ageの数値が出ます。

この「Weight」の文字を、それぞれの人名にしたいです。

イメージ説明

やってみたこと

とりあえず表示させたい人名を持たせなければならないと思ったので、ソースコードを下記のように書いてみました。

修正前(上記URLに載っているのと全く同じものです):

html

1 <html> 2 <head> 3 <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 4 <script type="text/javascript"> 5 google.charts.load('current', {'packages':['corechart']}); 6 google.charts.setOnLoadCallback(drawChart); 7 8 function drawChart() { 9 var data = google.visualization.arrayToDataTable([ 10 ['Age', 'Weight'], 11 [ 8, 12], 12 [ 4, 5.5], 13 [ 11, 14], 14 [ 4, 5], 15 [ 3, 3.5], 16 [ 6.5, 7] 17 ]); 18 19 var options = { 20 title: 'Age vs. Weight comparison', 21 hAxis: {title: 'Age', minValue: 0, maxValue: 15}, 22 vAxis: {title: 'Weight', minValue: 0, maxValue: 15}, 23 legend: 'none' 24 }; 25 26 var chart = new google.visualization.ScatterChart(document.getElementById('chart_div')); 27 28 chart.draw(data, options); 29 } 30 </script> 31 </head> 32 <body> 33 <div id="chart_div" style="width: 900px; height: 500px;"></div> 34 </body> 35</html>

修正後(とりあえず各配列内に名前が必要だろうと思って追記してみたものです):

html

1<html> 2 <head> 3 <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 4 <script type="text/javascript"> 5 google.charts.load('current', {'packages':['corechart']}); 6 google.charts.setOnLoadCallback(drawChart); 7 8 function drawChart() { 9 var data = google.visualization.arrayToDataTable([ 10 ['Age', 'Weight' , 'name'], 11 [ 8, 12 , '太郎'], 12 [ 4, 5.5, '花子'], 13 [ 11, 14, '次郎'], 14 [ 4, 5, '三郎'], 15 [ 3, 3.5, '四郎'], 16 [ 6.5, 7, '五郎'] 17 ]); 18 19 var options = { 20 title: 'Age vs. Weight comparison', 21 hAxis: {title: 'Age', minValue: 0, maxValue: 15}, 22 vAxis: {title: 'Weight', minValue: 0, maxValue: 15}, 23 legend: 'none' 24 }; 25 26 var chart = new google.visualization.ScatterChart(document.getElementById('chart_div')); 27 28 chart.draw(data, options); 29 } 30 </script> 31 </head> 32 <body> 33 <div id="chart_div" style="width: 900px; height: 500px;"></div> 34 </body> 35</html>

これを実行すると、下記メッセージでエラーになってしまいます。

All series on a given axis must be of the same data type

イメージ説明

根本的に何か間違っているのだろうと思うのですが、どのように記述すればいいか、お教え頂けないでしょうか。
どうかよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問