在jqplot中,我有一些带有x轴标签的数据。我正在尝试使用jqplot.highlight
插件在工具提示中显示x标签,当我将鼠标悬停在点(see this js-fiddle page with the same code)
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'}]
});
不幸的是,我正在获取系列的索引而不是标签:
当我将鼠标悬停在数据点上时,如何获取我在数组wallclock_delta
和wallclock_cummulative
中指定的字符串标签?
答案 0 :(得分:4)
我发现了这个问题。在我的例子中,我可以为xaxis ticks编写自定义格式化程序,如果我检测到数据系列的索引而不是字符串标签,我可以通过查看原始数组来返回字符串。否则,请执行默认行为:
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