0

columnchartを使用して作成しようとしていますhighcharts。意図は、シリーズの 2 つを互いに積み重ね、3 つ目をそれらの横に配置することです。

私のサンプル CSV ファイルは次のようになります。

Datoer,01/2013,02/2013,03/2013,04/2013
Disk - Freespace,800,1000,1243,1387
Disk - Allokeret,1000,1200,1456,1689
Tape Forbrug,5241,5942,6752,7210

コードは次のようになります。

$(document)
  .ready(function () {


  var graph = {
    chart: {
      renderTo: 'container',
      type: 'column'
    },
    credits: {
      enabled: false
    },
    title: {
      text: 'Imaginært Diskforbrug'
    },
    xAxis: {
      categories: []
    },
    yAxis: {
      min: 0,
      title: {
        text: 'Gigabyte'
      },
      stackLabels: {
        enabled: true,
        style: {
          fontWeight: 'bold',
          color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
        }
      }
    },
    legend: {
      align: 'right',
      x: -100,
      verticalAlign: 'top',
      y: 20,
      floating: true,
      backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColorSolid) || 'white',
      borderColor: '#CCC',
      borderWidth: 1,
      shadow: false
    },
    plotOptions: {
      column: {
        stacking: 'normal',
        dataLabels: {
          enabled: true,
          color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white'
        }
      }
    },
    series: []
  };

  $.get('data.txt', function (data) {
    // Split the lines
    var lines = data.split('\n');
    $.each(lines, function (lineNo, line) {
      var items = line.split(',');

      // header line containes categories
      if(lineNo == 0) {
        $.each(items, function (itemNo, item) {
          if(itemNo > 0) graph.xAxis.categories.push(item);
        });
      }

      // the rest of the lines contain data with their name in the first position
      else {
        var series = {
          data: []

        };
        $.each(items, function (itemNo, item) {
          if(itemNo == 0) {
            series.name = item;
          } else {
            series.data.push(parseFloat(item));
          }
        });

        graph.series.push(series);
      }

    });

    var chart = new Highcharts.Chart(graph);
  });


});

私の問題は、どのシリーズがスタックされているか、どのシリーズがスタックされていないかを区別する方法がわからないことです。CSV ファイルの 4 行目を他の 2 行 (ファイルの 2 番と 3 番) と重ねずに、そのすぐ横に表示したいと考えています。

列が積み重ねられているかどうかを定義する唯一のオプションは にあるようですが、plotOptionsこれにより、シリーズの積み重ねを分離する選択肢がありません。

4

2 に答える 2

0

これですか、何をお探しですか?

http://api.highcharts.com/highcharts#series.stack

jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/series/stack/
于 2013-03-09T13:49:46.287 に答える
0

CSV データの前処理に慣れることをお勧めします http://docs.highcharts.com/#preprocessing

于 2013-03-12T11:54:23.527 に答える