【发布时间】:2012-10-01 11:27:46
【问题描述】:
有没有办法改变 jqPlot 图的每个点的文本。因此,不是每个点都显示其正常值,而是可以将其更改为其他值。我图表上的每个点代表不同的数据。例如,我想按月份显示一年中参加考试的学生数量。但是我希望它显示平均测试结果,而不是工具提示中的数量。
是否可以更改工具提示文本?
谢谢
【问题讨论】:
有没有办法改变 jqPlot 图的每个点的文本。因此,不是每个点都显示其正常值,而是可以将其更改为其他值。我图表上的每个点代表不同的数据。例如,我想按月份显示一年中参加考试的学生数量。但是我希望它显示平均测试结果,而不是工具提示中的数量。
是否可以更改工具提示文本?
谢谢
【问题讨论】:
首先,这不是您问题的确切解决方案,但它可以用作可能的解决方法。
我使用 pointLabels plugin 在 jqplot 上取得了类似的结果。
这是你可以做的,
pointLabels 插件显示用于绘制图表的数据数组的内容。但是有一个选项可以提到应该使用数据数组的哪个索引来显示点标签。
pointLabels: {
show: true,
seriesLabelIndex: 2
}
因此,您可以为数据数组中的每个点添加任何您希望在图表中显示的详细信息。
但请记住,此不会显示为工具提示,而是显示为点标签。
我创建了一个小例子让你理解这一点。
http://jsfiddle.net/GayashanNA/q9mH8/
我还创建了一篇博客文章,描述了我在项目中所做的事情,如果您认为此解决方案可以帮助您,请在此处阅读以获取更多信息。
http://gayashan-a.blogspot.de/2012/10/tracking-mouse-position-on-your_2.html
【讨论】:
我找到了您提出的确切问题的解决方案。实际上有一种显示自定义工具提示的方法,但在任何地方都没有很好的文档记录。
您可以这样做。首先你必须包含highlighter plugin。然后在绘图选项中设置与此类似的荧光笔选项。
highlighter: {
show: true,
tooltipContentEditor: tooltipContentEditor
}
这里的tooltipContentEditor 是一个外部函数,可用于输出自定义 HTML 作为工具提示。
然后您可以从此函数返回计算的平均值或其他所需值。
function tooltipContentEditor(str, series_index, point_index, plot) {
len = plot.data[series_index].length;
total = 0;
for (i = 0 ; i < len; i++) {
total += parseFloat(plot.data[series_index][i][1]);
}
return "average:"+total/len;
}
您可以使用随函数传递的参数访问所有数据。
看看我的jsFiddle here。
【讨论】: