0

我有一个 dygraphs 图表,上面绘制了 115 个左右的系列。它工作得很好。但是,我试图弄清楚如何检索突出显示的系列的系列名称,以及如何格式化该数字。

dygraph fiddle 页面上的示例(不过,我使用一个大的 php 字符串作为数据,不会显示)。http://jsfiddle.net/eM2Mg/861/

我最终得到了一个突出显示的标签,例如“年份:1955 Y73 投资组合:1,000,000 美元”。我希望能够检索那个 73 号码,并编辑它所说的内容。我在 dygraph js 文件中找不到序列号的特定标签格式化程序,或检索它的方法。我不想手动标记每个系列。

想法?这是一个很棒的图表软件。

gr = new Dygraph(
// containing div
document.getElementById("graphdiv2"),
// CSV or path to a CSV file.
<?php echo $chartDataString2; ?>,
{
    title: 'Spending Level',
    ylabel: 'Spending ($)',
    xlabel: 'Year',
    labelsDivStyles: { 'textAlign': 'right' },
    digitsAfterDecimal: 0,
    yAxisLabelWidth: 100,
    axes: {
        y: {


                labelsKMB: false,
                maxNumberWidth: 11,
                valueFormatter: function numberWithCommas(x) {
                    return 'Spending: $' + x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
                },
                axisLabelFormatter: function numberWithCommas(x) {
                    return '$' + x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
                }
        },
        x: {
            valueFormatter: function numberWithCommas(x) {
                    return 'Year: ' + x;
                },
        },
    },
    showLabelsOnHighlight: true,
    highlightCircleSize: 3,
    strokeWidth: 1.5,
    strokeBorderWidth: 0,
 highlightSeriesBackgroundAlpha: 1.0,
    highlightSeriesOpts: {
      strokeWidth: 4,
      strokeBorderWidth: 2,
      highlightCircleSize: 5,
    },
}
);
4

1 回答 1

1

内置的 dygraphs 图例适用于大多数图表,但在某些时候你会超出它。听起来你已经到了那个地步。我建议隐藏内置图例并使用 highlightCallback 和 unhighlightCallback 实现自己的图例。您可以通过 g.getLabels() 访问系列名称。

于 2013-08-13T14:06:12.253 回答