2017-03-16 2 views
-1

Ich versuche ein Diagramm zu erstellen, um die Leistung eines Systems anzuzeigen. Mein Problem ist, dass Higcharts aus irgendeinem Grund nicht erkennt, dass ich mehr als eine Serie habe. Die erste Serie zeigt perfekt, aber die zweite ist nicht zu sehen. Ich verwende Django 1.8, um die Daten aus Wörterbüchern zu loopen.Zweite Serie wird nicht in Highcharts angezeigt

Meine Serien-Code:

series: [ 
    {% for ID, run in attDict.items|sort %} 
    { 
     yAxis: 0, 
     id: "Run" + {{forloop.counter}}, 
     name: "RunID " + {{ID}}, 
     color: getLineColor({{ID}}), 
     data: {{run}}, 
     marker: { 
      fillColor: getFillColor({{forloop.counter}}), 
     }, 
     visible: false 
     }, 
    {% endfor %} 

    {% for key, task in TaskE.items|sort %} 
    { 
     yAxis: 1, 
     id: "during", 
     linkedTo: "Run" + {{forloop.counter}}, 
     name: "Duringtask for run " + {{key}} 
     type: 'area', 
     color: '#12e000', 
     fillOpacity: 0.3, 
     data: {{task}}, 
     visible: fasle 
     }{% if forloop.last %}{% else %},{% endif %} 
    {% endfor %} 
    ] 

Die Ausgabe sieht wie folgt aus:

series: [ 
    { 
     yAxis: 0, 
     id: "Run" + 1, 
     name: "RunID " + 250, 
     color: getLineColor(250), 
     data: [0, 0, 0, 0, 0, 0, 6, 33, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     marker: { 
      fillColor: getFillColor(1), 
     }, 
     visible: false 
    }, 

    { 
     yAxis: 0, 
     id: "Run" + 2, 
     name: "RunID " + 256, 
     color: getLineColor(256), 
     data: [0, 0, 0, 1, 0, 0, 0, 0], 
     marker: { 
      fillColor: getFillColor(2), 
     }, 
     visible: false 
    }, 

    { 
     yAxis: 0, 
     id: "Run" + 3, 
     name: "RunID " + 257, 
     color: getLineColor(257), 
     data: [0, 0, 0, 1, 0, 0, 0, 0], 
     marker: { 
      fillColor: getFillColor(3), 
     }, 
     visible: false 
    }, 

    { 
     yAxis: 0, 
     id: "Run" + 4, 
     name: "RunID " + 265, 
     color: getLineColor(265), 
     data: [83, 0, 101, 0, 0, 96, 0], 
     marker: { 
      fillColor: getFillColor(4), 
     }, 
     visible: false 
    }, 

    { 
     yAxis: 0, 
     id: "Run" + 5, 
     name: "RunID " + 295, 
     color: getLineColor(295), 
     data: [14, 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 37, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 3, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     marker: { 
      fillColor: getFillColor(5), 
     }, 
     visible: false 
    }, 

    { 
     yAxis: 0, 
     id: "Run" + 6, 
     name: "RunID " + 296, 
     color: getLineColor(296), 
     data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 0, 28, 15], 
     marker: { 
      fillColor: getFillColor(6), 
     }, 
     visible: false 
    }, 
] 
+0

Warum haben Sie sichtbar gesetzt: false für die Serie ?, ich bin überrascht, dass es überhaupt eine der Serien zeigt –

+0

Sichtbar, was auf false gesetzt ist, nur um die Serie beim ersten Laden der Grafik zu verstecken. Sichtbar oder nicht, sollte die Serie in der Legende angezeigt werden, wo es ein- oder ausgeschaltet werden kann http://api.highcharts.com/highcharts/plotOptions.series.visible –

+0

Ihr Problem ist nicht recreatable - die Konfiguration ohne getFillColor/getLineColor funktioniert richtig. Können Sie die Geige anpassen http://jsfiddle.net/tru0psqL/1/ - Sie können sehen, dass die Serie ausgeblendet sind und ihre Sichtbarkeit kann umgeschaltet werden. – morganfree

Antwort

0

Sie das Diagramm explizit sagen nicht die Serie in der Legende zu zeigen, diese unter Verwendung von:

linkedTo: "Run" + {{forloop.counter}} 

Wenn zwei Serien verknüpft sind, nur die erste erscheint in der Legende. Wenn Sie die Sichtbarkeit ändern, wird auch die verknüpfte Serie umgeschaltet.

Referenz:

Entfernen Sie die linkedTo Eigenschaft aus der zweiten Schleife, und es sollte funktionieren.

+0

Versucht und fehlgeschlagen. LinkedTo hat einen Zweck. Ich verwende es um anzuzeigen, wenn eine Aufgabe ausgeführt wird. Was ich versuche, ist einen Lauf mit der verknüpften Serie anzuzeigen. Wenn Sie also einen Lauf anzeigen, wird auch die Information über die Task angezeigt. Ich habe diese Methode in einer anderen sehr ähnlichen Grafik verwendet. Das Problem ist, dass keine Daten aus der zweiten Schleife angezeigt werden. –

+0

1) "Auf welche Weise versucht und versagt?" Sei genau. 2) linkedTo wird die Reihe aus der Legende ausblenden, also, ob es einen Zweck hat oder nicht, es verursacht das Verhalten, das du beschreibst, und es ist dazu bestimmt. – jlbriggs

+0

Zurück zum ursprünglichen Post, scheinen Sie die Ausgabe von der ersten Schleife anzuzeigen, aber nicht von der zweiten. Wird nichts von der zweiten Schleife ausgegeben? Wenn das der Fall ist, müssen wir den Diagrammcode überhaupt nicht betrachten. Wenn nicht, zeigen Sie uns die Ausgabe. – jlbriggs

Verwandte Themen