2

我真的需要这方面的帮助。

基于这个问题,我正在尝试从高图表生成表格。

在这个Fiddle表中生成正常,但我需要数据值是文本,而不是数字格式。

我认为需要在这一行更改格式,但我不确定......

Highcharts.numberFormat(series[i].data[category_index].y, valueDecimals) + valueSuffix, 

有可能实现这一目标吗?

4

1 回答 1

5

您无法用文本替换数据值并显示它的原因是因为您将数据类型定义为十进制并使用 将Highcharts.numberFormaty 值转换为小数。由于您尝试输入文本,因此它无法将字符串格式化为小数,因此它为空。现在,您不能简单地Highcharts.numberFormat拨打电话并进行这项工作。HighCharts 数据系列需要一个数字 y 值。所以,为了做你想做的事,我们使用了一个未记录的点属性,叫做Note.

这是我的尝试。如果您只想使用 HighCharts 在 SVG/VML 中创建表格,您可以执行以下操作。创建一个这样的数据系列:

{
        name: 'Tokyo',
        data: [{
            y: 7.0,
            Note: 'note 1'},
        {
            y: 6.9,
            Note: 'note 2'},
        {
            y: 9.5,
            Note: 'note 3'},
        {
            y: 14.5,
            Note: 'note 4'},
        {
            y: 18.2,
            Note: 'note 5'},
        {
            y: 21.5,
            Note: 'note 6'},
        {
            y: 25.2,
            Note: 'note 7'},
        {
            y: 26.5,
            Note: 'note 8'},
        {
            y: 23.3,
            Note: 'note 9'},
        {
            y: 18.3,
            Note: 'note 10'},
        {
            y: 13.9,
            Note: 'note 11'},
        {
            y: 9.6,
            Note: 'note 12'}
                                        ],
        visible: false}

现在,y您将Note像以前一样循环遍历项目,而不是循环值,只是删除了数字内容:

$.each(series, function(i) {
    renderer.text(series[i].data[category_index].Note, cellLeft + colWidth - cellPadding, tableTop + (i + 2) * rowHeight - cellPadding).attr({
        align: 'right'
    }).add();
});

这是一个jsFiddle(仅更新了一个系列以使用该Note语法,但您明白了)。

于 2012-10-16T13:21:38.207 回答