0

我正在使用 JqPlot。

这是我的小提琴,下面是我的截图。我正在使用两个 y 轴。在左 y 轴上我有我的收入,在我右 y 轴上我有我的页面浏览量。

现在悬停在线上,我想在工具提示中同时显示视图和收入,如下面的示例所示,我一次只能从 2 个轴获取数据。

有什么想法吗 ?

在此处输入图像描述

下面是我的代码

$(document).ready(function () {

  $.jqplot.config.enablePlugins = true;

  s1 = [['23-May-08',1, 11],['24-May-08',4, 14],['25-May-08',2, 22],['26-May-08', 6, 26]];
  s2 = [['23-May-08',11, 1],['24-May-08',14, 4],['25-May-08',22, 2],['26-May-08', 26, 6]];

  plot1 = $.jqplot('chart',[s1, s2],{
     title: 'Highlighting, Dragging, Cursor and Trend Line',
     axes: {
         xaxis: {
             renderer: $.jqplot.DateAxisRenderer,
             tickOptions: {
                 formatString: '%#m/%#d/%y'
             },
             numberTicks: 4
         },
         yaxis: {
             tickOptions: {
                 formatString: '$%.2f'
             }
         }
     },
     highlighter: {
         show:true,
     },
     cursor: {
         show: true
     },
      series: [
        {
            lineWidth: 2,
            highlighter: { formatString: "<div style='background-color:white; border:1px #ddd solid; width:220px; height:60px'>%s . Views : %s Revenue : %s </div>" }
        },
        {
            yaxis: 'y2axis',
            highlighter: { formatString: "<div style='background-color:white; border:1px #ddd solid; width:220px; height:60px'>%s . Views : %s Revenue : %s </div>" }
        }]
  });
});​
4

2 回答 2

10

这是我所做的,我使用tooltipContentEditorhighlighter. 在这里查看更新的小提琴

在此处输入图像描述

series: [
{
    lineWidth: 2,
    highlighter: {
        show: true,
        tooltipContentEditor: function (str, seriesIndex, pointIndex, plot) {

            var date = plot.data[seriesIndex][pointIndex][0];
            var revenue = plot.data[seriesIndex][pointIndex][3];
            var views = plot.data[1][pointIndex][4];

            var html = "<div>Date : ";
            html += date;
            html += "  <br>Money : ";
            html += revenue;
            html += "  <br>Views : ";
            html += views;
            html += "  </div>";

            return html;
        }
    }
},
{
    yaxis: 'y2axis',
    highlighter: {
        show: true,
        tooltipContentEditor: function (str, seriesIndex, pointIndex, plot) {

            var date = plot.data[seriesIndex][pointIndex][0];
            var views = plot.data[seriesIndex][pointIndex][5];
            var revenue = plot.data[0][pointIndex][6];

            var html = "<div>Date : ";
            html += date;
            html += "  <br>Money : ";
            html += revenue;
            html += "  <br>Views : ";
            html += views;
            html += "  </div>";

            return html;
        }
    }
}]
于 2012-12-06T06:05:35.910 回答
1

代替

plot.data[seriesIndex][pointIndex]

用这个

plot.series[seriesIndex].data[pointIndex]

因为 plot.data 保存用户指定的数据(可能未排序)

并且 plot.series 保存绘制的数据(如果 sortdata 为 true,则可以对其进行排序,这是默认值)。

于 2013-01-11T14:53:00.040 回答