2017-02-02 5 views
0

Ich verwende das Datenmodul für HighCharts. Ich versuche, für jede Serie eine zusätzliche Datenspalte mit der Summe bereitzustellen, und zeige dann diese Summe im Tooltip an, zum Beispiel "Mindestens wöchentlich: 10 (n = 190)".Verwenden von HighCharts seriesMapping im Datenmodul zum Lesen einer Gesamtspalte

Hinweis: Die Summe ist NICHT unbedingt die Summe der Punkte, weshalb ich es als eine separate Spalte in den Daten im Gegensatz zur Verwendung von point.total oder sum() zur Verfügung stelle.

Aus der Dokumentation sieht es so aus, als könnte ich das seriesMapping-Objekt verwenden, das eine benutzerdefinierte Zuordnung der Spalten zu bestimmten Punktoptionen ermöglicht. Allerdings kann ich nur die Summe für einen der Punkte zeigen.

Zum Beispiel, wie bekomme ich "(n = 190)" für beide "Every Day" und "mindestens wöchentlich" für die "WiFi Hotspot" -Serie? Im Moment wird nur für "Mindestens wöchentlich" angezeigt. Es zeigt "Every Day: 21 (n = undefined)" für die andere Kategorie.

Jede Hilfe wird sehr geschätzt werden, danke!

Hier sind meine Daten ...

<pre id="data">Categories,At Least Weekly,Every Day 
WiFi Hotspot,10,21,190 
myConnect.com Website,18,15,200 
MMI Connect App,15,15,191 
External Voice Recognition,18,12,300 
</pre> 

Hier ist meine HighCharts Definition ...

Highcharts.chart('container', { 
    credits: { 
     enabled: false 
    }, 
    chart: { 
     type: "bar" 
    }, 
    title: { 
     text: "Feature Usage" 
    }, 
     tooltip: { 
      formatter: function() { 
       return this.series.name + ': ' + this.y + ' (n=' + this.point.mytotal + ')';     
      } 
     }, 
    xAxis: { 
     categories: [] 
    }, 
    yAxis: { 
     title: { 
      text: "Percent" 
     } 
    }, 
    data: { 
     csv: document.getElementById('data').innerHTML, 
      seriesMapping: [{ 
       mytotal: 3 // total is in column 3 
      }] 
    },   
    plotOptions: { 
     series: { 
      stacking: 'normal' 
     } 
    } 
}); 

Hier in jsfiddle ist ... https://jsfiddle.net/gregality/6eens9bv/

Antwort

1

Sie haben 2-Serie , so dass Sie 2 Zuordnungen benötigen:

seriesMapping: [{ 
    x:0, 
    y:1, 
    mytotal: 3 
},{ 
    x:0, 
    y:2, 
    mytotal: 3 
}] 

Während bei 1 Serie die Standardzuordnungen x:0 und y:1 gelten. Wenn Sie ein 2. Mapping hinzufügen, müssen Sie explizit alle Mappings angeben.

Auch Ihre CSV wurde mallformed. Sie haben den Header für Ihre 4. Spalte vermisst.

https://jsfiddle.net/6eens9bv/4/

+1

Excellent! Ich hatte versucht, eine 2. Reihe hinzuzufügen, aber spezifizierte nicht x und y. Jetzt macht es Sinn für mich. Vielen Dank! –

Verwandte Themen