2013-11-26 32 views
1

在jqplot中,我有一些帶有x軸標籤的數據。我試圖使用jqplot.highlight插件,在彈出當我鼠標點(see this js-fiddle page with the same code)在jqplot中,如何讓數據的刻度標籤出現在鼠標懸停的工具提示上?

var wallclock_delta = [ ["A", 1.78 ] , ["B", 0.02 ] , ["C", 0.23 ] ]; 
var wallclock_cummulative = [ ["A", 1.80 ] , ["B", 1.82 ] , ["C", 2.05 ] ]; 

$.jqplot('chartdiv', [wallclock_delta,wallclock_cummulative],{ 
    title: "Times",  
    axesDefaults: { 
     tickRenderer: $.jqplot.CanvasAxisTickRenderer , 
     tickOptions: { 
      angle: -45, 
      fontSize: '10pt' 
     } 
    }, 
    axes: { 
     xaxis: { 
      renderer: $.jqplot.CategoryAxisRenderer, 
     }, 
     yaxis: { 
      label: 'left_y_axis', 
     }, 
     y2axis: { 
      label: 'right_y_axis', 
     } 
    }, 
    highlighter: { 
     show: true, 
     sizeAdjust: 7.5, 
     useAxesFormatters : true 
    }, 
    series:[ 
     {yaxis:'yaxis', label:'wallclock_delta'}, 
     {yaxis:'y2axis', label:'wallclock_cummulative'}] 

}); 

不幸的是,我得到一個索引系列,而不是標籤的工具提示中顯示的X標籤: improper tooltip

我怎樣才能得到我的陣列wallclock_deltawallclock_cummulative指定的字符串標籤出現,當我將鼠標懸停在數據點?

回答

3

我發現了這個問題。在我的情況下,我可以爲xaxis滴答寫一個自定義格式化程序,如果我檢測到數據系列中的索引而不是字符串標籤,則可以通過查看原始數組來返回字符串。否則,執行默認行爲:

var my_special_x_axis_formatter = function (formatString, value) { 
    var array_index = parseInt(value) || -1; 
    if (array_index >= 0 && array_index < wallclock_delta.length) { 
     return wallclock_delta[array_index][0]; 
    } else { 
     return $.jqplot.DefaultTickFormatter(formatString,value); 
    } 

} 
$.jqplot[...] 
    axes: { 
    xaxis: { 
     tickOptions:{formatter: my_special_x_axis_formatter} 
[...] 

,總之在js-fiddle

相關問題