2017-02-10 4 views
0

Okay, das ist ein wenig schwierig. Ich habe ein Array der folgenden Objekte:Highcharts Säulendiagramm Gruppierung

enter image description here

Jetzt ist mein Ziel Säulendiagramm zu erstellen, die wie folgt aussehen würde: enter image description here

und dann wird das nächste Objekt in meinem Array.

Ich habe mich durch die Dokumentation und alles, was ich finden konnte, war so etwas wie diese:

Highcharts demo

Das Problem ist der data Wert, der in der Serie. Wenn Sie ein Array einfügen, wird es auf alle Kategorien aufgeteilt. Soweit ich sehen kann, können Sie eine Datenreihe nicht in einer Kategorie sperren.

Meine Frage ist, hat jemand so etwas schon einmal gemacht und kann mir helfen? :)

Mein Versuch:

Im innerhalb dieser Geige versuchen:

Highcharts.chart('container', { 
     xAxis: { 
      minPadding: 0.05, 
      maxPadding: 0.05, 
      categories: ['Apples', 'Oranges', 'Pears', 'Bananas', 'Plums'] 
     }, 
     series: [{ 
       type: 'column', 
      name: 'Apples', 
      zoneAxis: 'x', 
      data: [ 
       ['First', 29.9], 
       ['Second', 71.5], 
       ['Third', 106.4] 
      ] 
     },{ 
      type: 'column', 
      name: 'oranges', 
      data:[ 
      ['A', 20] 
      ] 
     }] 
    }); 

Fiddle

+0

Es ist einfacher, mit einem helfen Geige von Ihrem tatsächlichen Code a Beispiel, anstatt einer etwas verwandten Highcharts-Demo. Kurze Antwort ist ja, Sie haben Recht, dass es nicht so funktioniert, aber ja, mit etwas Manipulation sollten Sie in der Lage sein zu bekommen, was Sie brauchen. – jlbriggs

Antwort

1

Es gibt wahrscheinlich viele Möglichkeiten, dies zu nähern, und die beste Option hängt davon ab, wie bestimmte Ihre Bedürfnisse sind.

Die erste Möglichkeit, die Ihnen in den Sinn kommt, besteht darin, nur zu manipulieren, wie Sie Ihre Daten und Kategorien strukturieren.

Beispiel:

xAxis: { 
     categories: ['Group 1', 'Group 2', 'Group 3'], 
     labels: { style: { fontWeight: 'bold' } } 
    }, 
    series: [{ 
     name: 'Subset A', 
      data: [{y: 10, name: '1A'}, {y: 5, name: '2A'}, {y: 7, name: '3A'}] 
    }, { 
     name: 'Subset B', 
      data: [{y: 5, name: '1B'}, {y: 3, name: '2B'}, {y: 4, name: '3B'}] 
    }] 

Also, vorausgesetzt drei Gruppen, die jeweils mit zwei Punkten. Sie wollen die erste Kategorie Punkt zeigen A und B von Gruppe 1, die zweite Kategorie Punkt zu zeigen A und B von Gruppe 2 usw.

Fiddle:

Ausgang:

enter image description here

Das Hauptpotenzial Nachteil ist, dass die Legende/auszublenden Punkte A oder B zeigen, und nicht der Gruppe 1, 2 oder 3.

Sie Dies kann umgangen werden, indem eine Funktion zum Anzeigen/Ausblenden von Kategorien hinzugefügt wird, wenn dies ein Problem ist.

Schauen Sie sich die Antwort auf diese Frage hier:

und die damit verbundene Geige hier:

Verwandte Themen