javascript - 将图例名称添加到 JQPlot 工具提示并在工具提示中正确设置日期格式

标签 javascript jquery jqplot

我想将绘图的图例名称添加到系列线的鼠标悬停工具提示中。我使用了解决此问题的一种方法 jqplot tooltip on bar chart .

具体来说,我使用了以下函数:

function tooltipContentEditor(str, seriesIndex, pointIndex, plot) {
   // display series_label, x-axis_tick, y-axis value
   return plot.series[seriesIndex]["label"] + ", " + plot.data[seriesIndex][pointIndex];
}

但是,我遇到的问题是它不使用图例名称“我的图例名称”,而是使用 JQPlot 默认值“系列 1”或“系列 5”(数字取决于系列位置)。

第二个问题是,一旦我开始使用上述功能,我就会丢失日期格式。所以我得到一个数字,例如类似于 123672378328 而不是将其转换为我在 tickOptions 中指定的格式。

我生成图表的代码如下:

var plot;
function buildChart(chartDivId, graphData, chartTitle, graphSeriesNames, labelNames) {

    var id = "#" + chartDivId;
    $(id).empty(); 

    var seriesLine = { lineWidth:1, markerOptions: { show:false } };

    plot = $.jqplot(chartDivId, graphData,
        {
            title: chartTitle,
            axes:
            {
                xaxis:
                {
                    label:'Date',
                    renderer:$.jqplot.DateAxisRenderer,
                    tickOptions: { formatString:'%b  %#d  %H:%M' }
                },
                yaxis: { label: 'Parameter Values', tickOptions: { formatString:'%.2f' }, labelRenderer: $.jqplot.CanvasAxisLabelRenderer, labelOptions : { angle: 270, fontFamily: 'Arial, Verdana, Helvetica', fontSize: '8pt' }, autoscale: true },
            },
            seriesDefaults: {
                 markerOptions: {
                     show: true, style:'filledCircle', size: 4.5      
                 }
            },
            highlighter:
            {
                show: true,
                sizeAdjust: 7.5,
                tooltipContentEditor:tooltipContentEditor  //new code added to attempt to add legend name to mouse over tool tip
            },
            cursor:
            {
                show: true,
                zoom: true,
                showTooltip: false
            },
            legend:
            {
                labels: labelNames ,
                show: true,
                location: 's',
                renderer: $.jqplot.EnhancedLegendRenderer,
                rendererOptions:
                {
                    numberColumns: 10, 
                    numberRows: 5,
                    seriesToggle: 900,
                    disableIEFading: false
                },
                marginTop: '100px',
                marginBottom: '100px',
                placement: 'outside'
            }       
        }
    );

最佳答案

进一步更新:

在有点愚蠢并深入研究 JQPlot 的绘图对象之后,我意识到传递到 tooltipContentEditor 方法中的 str 变量有我需要的东西。所以解决方法如下:

function tooltipContentEditor(str, seriesIndex, pointIndex, plot) {
    // display series_label with x and y values value
    return plot.legend.labels[seriesIndex] + ", " + str;
}

没有提供任何帮助或建议,所以我想我会提供我花了几个小时尝试修复后找到的解决方案。

关于javascript - 将图例名称添加到 JQPlot 工具提示并在工具提示中正确设置日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708178/

相关文章:

javascript - SetInterval 脚本应用于多个元素

javascript - 是否可以有一个网页只能由同一网络上的人查看?

javascript - Google Storage 签名 URL 过期导致 400 错误,没有 CORS header

javascript - 如何使用 JQuery 或 Javascript 使用动态路径从 JSON 对象中删除

javascript - 如何使 jqPlot 与条形图示例一起使用

jsf - Primefaces & jqplot - 在轴上显示日期

JavaScript (WebGL) 开源光线追踪器(非实时)

javascript - JQuery解析Json文件大小未定义

javascript - stickyfloat 不适用于绝对定位元素

primefaces - p:lineChart-连续线,无点