我有一个多序列图表,不仅要突出显示点的x和y坐标,还要突出显示series名称。
有可能吗?
发布于 2014-01-09 00:57:41
我找到的最简单的方法是这样:
$.jqplot('chart-id', values, {
series: [
{
highlighter: { formatString: 'serie1: %s, %s'}
},
...
]
axes : {
xaxis:{
renderer:$.jqplot.DateAxisRenderer,
tickOptions:{
formatString:'%b %#d'
}
},
yaxis:{
tickOptions:{
formatString:'%.2f'
}
}
},
highlighter: {
show: true
}
});发布于 2012-02-28 23:42:02
我需要同样的功能。我发现了这篇文章
http://groups.google.com/group/jqplot-users/browse_thread/thread/edcbe2a30ef5052b/622626628106cdc6?lnk=gst&q=series+name+in+highlighter#622626628106cdc6
在阅读了本文并检查了代码后,我对plugins/jqplot.light ter.js的第292行(v1.0.0b2_r947)进行了更改。这是switch (opts.tooltipAxes)中的"case 'xy'“块。
输出:
str = xstr; 在:
str = series.label + ": ";
str += xstr;现在,我的系列名称显示在数据点工具提示中:)您可以通过在系列选项中添加一个新开关来扩展它,但我希望它始终处于打开状态。
发布于 2012-03-13 00:32:57
我需要同样的功能。但我不希望自己更改jqplot脚本,我使用了here提供的解决方案。
这是相当直接的。此解决方案的好处是,您可以修改工具提示的内容,而无需修改jqplot脚本。这样你的代码就独立于将来的更新了。
例如,请参阅下面的解决方案built the aforementioned example
function myMove (ev, gridpos, datapos, neighbor, plot) {
if (neighbor == null ) {
$('#myToolTip').fadeOut();
}
if (neighbor != null ) {
var seriesName = plot.series[neighbor.seriesIndex].label;
var x = neighbor.data[0];
var y = neighbor.data[1];
if(!lastNeighbor || (lastNeighbor.seriesIndex !== neighbor.seriesIndex || lastNeighbor.pointIndex !== neighbor.pointIndex)){
var myText = "Series name="+seriesName+"<br/>Value="+y;
$('#myToolTip').html(myText).css({left:gridpos.x, top:gridpos.y}).fadeIn();
}
}
lastNeighbor = neighbor;
}
var lastNeighbor = null;https://stackoverflow.com/questions/8637479
复制相似问题