Charts 多个谷歌图表-同时在所有图表上显示工具提示/十字线

Charts 多个谷歌图表-同时在所有图表上显示工具提示/十字线,charts,google-visualization,Charts,Google Visualization,我试着画两个单独的谷歌图表,让它们共用一个x轴。我的想法是,我可以将鼠标悬停在一个图表上,然后在另一个图表上的正确日期看到工具提示 有点像这样,但是有一个工具提示。focusTarget属性在单个图表上非常有效,但不能同时在两个图表上都有效 我想我必须以某种方式创建一个通用的日期列,但我不知道该怎么做 我的工作(缩写)代码(到目前为止)用于显示图表 var link = function(scope,element,attrs) { google.charts.setOnLoadCall

我试着画两个单独的谷歌图表,让它们共用一个x轴。我的想法是,我可以将鼠标悬停在一个图表上,然后在另一个图表上的正确日期看到工具提示

有点像这样,但是有一个工具提示。focusTarget属性在单个图表上非常有效,但不能同时在两个图表上都有效

我想我必须以某种方式创建一个通用的日期列,但我不知道该怎么做

我的工作(缩写)代码(到目前为止)用于显示图表

var link = function(scope,element,attrs) {

  google.charts.setOnLoadCallback(drawUsageChart);

  google.charts.setOnLoadCallback(drawChartOne);

  function drawChartOne() {

    var data = new google.visualization.DataTable();
    data.addColumn('date', 'Date');
    data.addColumn('number', 'Sessions');

    var sessions = [786, 450, 866, 814, 192, 466, 984, 780, 922, 458, 786, 758, 701, 831, 901, 557, 114, 393, 689, 658, 103, 837, 164, 727, 593, 193, 945, 583, 948, 338];

    var start = new Date(1458345600 * 1000);
    var date;

    var dates = [];

    for(var i = 0; i < sessions.length; i++) {
      var newDate = start.setDate(start.getDate() + 1);
      data.addRow([new Date(newDate), sessions[i]]);
    }

    var options = {title:'Wot',
      height:300,
      lineWidth: 1.5,
      legend: { position: 'none' },
      crosshair: {
        trigger: 'both',
        orientation: 'vertical'
      },
      focusTarget: 'category',
    };

    var chart = new google.visualization.LineChart(document.getElementById('mcs-chart'));
    chart.draw(data, options);
  }

  function drawChartTwo() {

    var data = new google.visualization.DataTable();
    data.addColumn('date', 'Date');
    data.addColumn('number', 'Other Sessions');

    var sessions = [786, 450, 866, 814, 192, 466, 984, 780, 922, 458, 786, 758, 701, 831, 901, 557, 114, 393, 689, 658, 103, 837, 164, 727, 593, 193, 945, 583, 948, 338];

    var start = new Date(1458345600 * 1000);
    var date;

    var dates = [];

    for(var i = 0; i < sessions.length; i++) {
      var newDate = start.setDate(start.getDate() + 1);
      // dates.push(new Date(newDate));
      data.addRow([new Date(newDate), sessions[i]]);
    }

    var options = {
      title:'WOOOOT',
      height:300,
      lineWidth: 1.5,
      legend: { position: 'none' },
      crosshair: {
        trigger: 'both',
        orientation: 'vertical'
      },
      focusTarget: 'category',
    };

    var chart = new google.visualization.LineChart(document.getElementById('snr-chart'));
    chart.draw(data, options);
  }

};
var link=函数(范围、元素、属性){
setOnLoadCallback(drawUsageChart);
google.charts.setOnLoadCallback(drawChartOne);
函数drawChartOne(){
var data=new google.visualization.DataTable();
data.addColumn('date','date');
data.addColumn('number','Sessions');
var会话=[78645086681419246698478045878675870183190105571143936895658658103837164727558398];
var开始=新日期(1458345600*1000);
风险值日期;
var日期=[];
对于(var i=0;i
尝试使用
google.visualization.events.trigger
同步两个
'onmouseover'
事件

尽管在另一个图表上触发了
'onmouseover'
事件,但工具提示未显示

显然

您必须使用数据点的坐标编写自己的

但是您可以在
'select'

扩展问题中的示例

google.charts.load('current'{
回调:函数(){
var-chart1;
var-chart2;
var data1=新的google.visualization.DataTable();
var data2=新的google.visualization.DataTable();
var outDiv1=document.getElementById('mcs-chart-event');
var outDiv2=document.getElementById('snr-chart-event');
var options1={title:'Wot',
身高:300,
线宽:1.5,
图例:{位置:'无'},
十字线:{
触发器:“两个”,
方向:“垂直”
},
焦点目标:“类别”,
};
var选项2={
标题:'wooot',
身高:300,
线宽:1.5,
图例:{位置:'无'},
十字线:{
触发器:“两个”,
方向:“垂直”
},
焦点目标:“类别”,
};
drawChartOne(数据1);
图纸二(数据二);
google.visualization.events.addListener(图表1,'select',函数(){
图2.setSelection(图1.getSelection());
});
google.visualization.events.addListener(图表2,'select',函数(){
chart1.setSelection(chart2.getSelection());
});
google.visualization.events.addListener(图表1,'onmouseover',函数(属性){
outDiv1.innerHTML='chart1.onmouseover'+JSON.stringify(属性);
google.visualization.events.trigger(图表2,'onmouseover',属性);
});
google.visualization.events.addListener(图表2,'onmouseover',函数(属性){
outDiv2.innerHTML='chart2.onmouseover'+JSON.stringify(属性);
});
图表1.绘图(数据1,选项1);
图表2.绘图(数据2,选项2);
函数drawChartOne(数据){
data.addColumn('date','date');
data.addColumn('number','Sessions');
var会话=[78645086681419246698478045878675870183190105571143936895658658103837164727558398];
var开始=新日期(1458345600*1000);
风险值日期;
var日期=[];
对于(var i=0;i