0

Is there a way to change the text at each point of a jqPlot graph. So instead of each point displaying its normal value, can it be changed to something else. Each point on my graph represents different data. For example I want to display the amount of students that took tests over the year broken down by month. But instead of the tool tip saying the amount I want it to show the average test result.

Is it possible to change the tooltips text?

Thanks

4

2 回答 2

1

首先,这不是您问题的确切解决方案,但它可以用作可能的解决方法。

pointLabels 我使用插件在 jqplot 上取得了类似的结果。

这是你可以做的,

pointLabels 插件显示用于绘制图表的数据数组的内容。但是有一个选项可以提到应该使用数据数组的哪个索引来显示点标签。

pointLabels: {
    show: true,
    seriesLabelIndex: 2
}

因此,您可以做的是对于数据数组中的每个点,您可以包含您希望在图表中显示的任何详细信息。

但请记住,这不会显示为 tooltip,而是显示为点标签。

我创建了一个小例子让你理解这一点。

http://jsfiddle.net/GayashanNA/q9mH8/

我还创建了一篇博客文章,描述了我在项目中所做的事情,如果您认为此解决方案可以帮助您,请在此处阅读以获取更多信息。

http://gayashan-a.blogspot.de/2012/10/tracking-mouse-position-on-your_2.html

于 2012-10-05T11:50:30.623 回答
0

我找到了您提出的确切问题的解决方案。实际上有一种显示自定义工具提示的方法,但在任何地方都没有很好的记录。

这是你如何做到的。首先,您必须包含荧光笔插件。然后在绘图选项中设置与此类似的荧光笔选项。

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

于 2012-12-11T12:54:34.453 回答