2

私は本当にこれについて助けが必要です。

この質問に基づいて、High-chartsからテーブルを生成しようとしています。

このフィドルテーブルでは問題なく生成されますが、データ値は数値形式ではなくテキストである必要があります。

この行でフォーマットを変更する必要があると思いますが、よくわかりません...

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

これを達成することは可能ですか?

4

1 に答える 1

5

データ値をテキストに置き換えて表示させることができなかった理由は、データ型を10進数として定義し、を使用しHighcharts.numberFormatてy値を10進数にするためです。テキストを入力しようとすると、文字列を10進数としてフォーマットできないため、nullになります。さて、あなたは単にその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です(構文を使用するように更新されたシリーズは1つだけNoteですが、アイデアは得られます)。

于 2012-10-16T13:21:38.207 に答える