【问题标题】:Creating custom tooltip for Google Combo Chart为 Google 组合图创建自定义工具提示
【发布时间】:2018-09-16 19:37:31
【问题描述】:

对于我的问题,我准备了一个简单的JSFiddle

在带有阶梯区域和虚线的组合图中,我试图显示a tooltip with custom text,因为默认文本(上面屏幕截图中的“652 Win: 85”)难以理解。

我的 JavaScript 代码如下(数据实际上来自 PHP 脚本 + 数据库,但为简单起见,我只是将其放入 jsonData 变量中):

  google.charts.load('current', {
      'packages': ['corechart']
  });
  google.charts.setOnLoadCallback(drawComboChart);

  function drawComboChart() {
      var jsonData = {
          "cols": [{
                  "label": "Game",
                  "type": "string"
              },
              {
                  "label": "Win",
                  "type": "number"
              },
              {
                  "label": "Defeat",
                  "type": "number"
              },
              {
                  "label": "Draw",
                  "type": "number"
              },
              {
                  "label": "Opponent score",
                  "type": "number"
              },
              {
                  "role": "tooltip",
                  "type": "string"
              }
          ],
          "rows": [{
                  "c": [{
                          "v": 646
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 10
                      },
                      {
                          "v": "Game 646 0:10 lost"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 647
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 13
                      },
                      {
                          "v": "Game 647 0:13 won"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 648
                      },
                      {
                          "v": 22
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 23
                      },
                      {
                          "v": "Game 648 22:23 won"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 651
                      },
                      {
                          "v": 13
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 31
                      },
                      {
                          "v": "Game 651 13:31 won"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 652
                      },
                      {
                          "v": 85
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 75
                      },
                      {
                          "v": "Game 652 85:75 won"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 653
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 10
                      },
                      {
                          "v": "Game 653 0:10 lost"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 654
                      },
                      {
                          "v": 18
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 12
                      },
                      {
                          "v": "Game 654 18:12 won"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 655
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 10
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 22
                      },
                      {
                          "v": "Game 655 10:22 lost"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 661
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 33
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 44
                      },
                      {
                          "v": "Game 661 33:44 lost"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 666
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 5
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 18
                      },
                      {
                          "v": "Game 666 5:18 lost"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 682
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 95
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 107
                      },
                      {
                          "v": "Game 682 95:107 lost"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 686
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 10
                      },
                      {
                          "v": "Game 686 0:10 lost"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 733
                      },
                      {
                          "v": 389
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 387
                      },
                      {
                          "v": "Game 733 389:387 won"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 737
                      },
                      {
                          "v": 29
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 12
                      },
                      {
                          "v": "Game 737 29:12 won"
                      }
                  ]
              },
              {
                  "c": [{
                          "v": 979
                      },
                      {
                          "v": 152
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 0
                      },
                      {
                          "v": 70
                      },
                      {
                          "v": "Game 979 152:70 won"
                      }
                  ]
              }
          ]
      };
      var dt = new google.visualization.DataTable(jsonData);
      //dt.addColumn({type: 'string', role: 'tooltip'});
      var options = {
          width: 480,
          height: 360,
          legend: {
              position: 'top',
              alignment: 'center',
              maxLines: 2
          },
          seriesType: 'steppedArea',
          series: {
              3: {
                  type: 'line',
                  lineWidth: 1,
                  color: '000000',
                  lineDashStyle: [4, 2]
              }
          }
      };

      var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
      chart.draw(dt, options);
  }

正如您在上面的代码中看到的,我添加了一个列:

  {
      "role": "tooltip",
      "type": "string"
  }

并尝试用以下值填充它:

  {
      "v": "Game 737 29:12 won"
  }

但是,当悬停在阶梯区域上时,会显示默认工具提示。

只有将鼠标悬停在虚线上时,才能看到新的自定义工具提示。

请问如何在任何地方启用自定义工具提示?

【问题讨论】:

    标签: charts google-visualization tooltip


    【解决方案1】:

    tooltip 列角色只会代表它跟随的数据列...

    在任何地方启用自定义工具提示
    您需要在每个数据列之后添加一个工具提示列...

    请参阅以下工作 sn-p...

      google.charts.load('current', {
          'packages': ['corechart']
      });
      google.charts.setOnLoadCallback(drawComboChart);
    
      function drawComboChart() {
          var jsonData = {
              "cols": [{
                      "label": "Game",
                      "type": "string"
                  },
                  {
                      "label": "Win",
                      "type": "number"
                  },
                  {
                      "role": "tooltip",
                      "type": "string"
                  },
                  {
                      "label": "Defeat",
                      "type": "number"
                  },
                  {
                      "role": "tooltip",
                      "type": "string"
                  },
                  {
                      "label": "Draw",
                      "type": "number"
                  },
                  {
                      "role": "tooltip",
                      "type": "string"
                  },
                  {
                      "label": "Opponent score",
                      "type": "number"
                  },
                  {
                      "role": "tooltip",
                      "type": "string"
                  }
              ],
              "rows": [{
                      "c": [{
                              "v": 646
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 646 0:10 lost"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 646 0:10 lost"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 646 0:10 lost"
                          },
                          {
                              "v": 10
                          },
                          {
                              "v": "Game 646 0:10 lost"
                          }
                      ]
                  },
                  {
                      "c": [{
                              "v": 647
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 647 0:13 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 647 0:13 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 647 0:13 won"
                          },
                          {
                              "v": 13
                          },
                          {
                              "v": "Game 647 0:13 won"
                          }
                      ]
                  },
                  {
                      "c": [{
                              "v": 648
                          },
                          {
                              "v": 22
                          },
                          {
                              "v": "Game 648 22:23 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 648 22:23 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 648 22:23 won"
                          },
                          {
                              "v": 23
                          },
                          {
                              "v": "Game 648 22:23 won"
                          }
                      ]
                  },
                  {
                      "c": [{
                              "v": 651
                          },
                          {
                              "v": 13
                          },
                          {
                              "v": "Game 651 13:31 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 651 13:31 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 651 13:31 won"
                          },
                          {
                              "v": 31
                          },
                          {
                              "v": "Game 651 13:31 won"
                          }
                      ]
                  },
                  {
                      "c": [{
                              "v": 652
                          },
                          {
                              "v": 85
                          },
                          {
                              "v": "Game 652 85:75 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 652 85:75 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 652 85:75 won"
                          },
                          {
                              "v": 75
                          },
                          {
                              "v": "Game 652 85:75 won"
                          }
                      ]
                  },
                  {
                      "c": [{
                              "v": 653
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 653 0:10 lost"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 653 0:10 lost"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 653 0:10 lost"
                          },
                          {
                              "v": 10
                          },
                          {
                              "v": "Game 653 0:10 lost"
                          }
                      ]
                  },
                  {
                      "c": [{
                              "v": 654
                          },
                          {
                              "v": 18
                          },
                          {
                              "v": "Game 654 18:12 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 654 18:12 won"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 654 18:12 won"
                          },
                          {
                              "v": 12
                          },
                          {
                              "v": "Game 654 18:12 won"
                          }
                      ]
                  },
                  {
                      "c": [{
                              "v": 655
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 655 10:22 lost"
                          },
                          {
                              "v": 10
                          },
                          {
                              "v": "Game 655 10:22 lost"
                          },
                          {
                              "v": 0
                          },
                          {
                              "v": "Game 655 10:22 lost"
                          },
                          {
                              "v": 22
                          },
                          {
                              "v": "Game 655 10:22 lost"
                          }
                      ]
                  }
              ]
          };
          var dt = new google.visualization.DataTable(jsonData);
          //dt.addColumn({type: 'string', role: 'tooltip'});
          var options = {
              width: 480,
              height: 360,
              legend: {
                  position: 'top',
                  alignment: 'center',
                  maxLines: 2
              },
              seriesType: 'steppedArea',
              series: {
                  3: {
                      type: 'line',
                      lineWidth: 1,
                      color: '000000',
                      lineDashStyle: [4, 2]
                  }
              }
          };
    
          var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
          chart.draw(dt, options);
      }
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="chart_div"></div>

    【讨论】:

    • 谢谢...由于只能是“赢”、“失败”或“平局”,我可以打印一个空的工具提示(即 { v: "" } 在其他提示之后,以保存一些数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多