Ich habe eine einfache 1-Serie Balkendiagramm, wo jeder Balken einen Nennwert hat. Ich kann das gut mit den Datenbeschriftungen und der Achse darstellen, die den Wert für jeden Balken darstellen, aber ich möchte, dass das Datenlabel und die Achse den Prozentsatz der gesamten Serie anzeigen, während der nominale Wert in einem Tooltip angezeigt wird. daher möchte ich die Daten vor dem Plotten nicht in Prozentwerte umwandeln).
Hier ist ein Bild, das zeigt, was ich suche und wo ich jetzt bin:
Was ich zur Zeit für Achsenbeschriftungen als Formatierungsfunktion habe:
%Vor% Gibt es eine formatter
Funktionsvariable, die ich verwenden kann, um dies zu erreichen? Ich weiß, dass es leicht in einem Kreisdiagramm gemacht wird, aber ich glaube, dass Balkendiagramme Daten viel besser darstellen.
EDIT: Um es einfach zu sagen, wie bekomme ich die Summe aller Punkte der Serie? Sobald ich dies habe, ist es einfach, den Prozentsatz zu erhalten:
return Highcharts.numberFormat(100 * this.y / this.y.total,0) + "%";
Dabei ist this.y.total
die Summe der Serien.
Sie müssen die Daten durchlaufen und die Summe abrufen und dann die Formatierungsfunktion für Datalabel verwenden, um den Prozentsatz zu erhalten.
Beispiel hier:
%Vor%edit ::
aktualisiertes Beispiel mit Achsenbeschriftungen:
[[EDIT für Kommentare
Wenn Sie versuchen, die Prozentwerte mehrerer Serien zu plotten, gibt es eine Reihe grundlegender Probleme.
Wenn Sie die% von zwei verschiedenen Datenreihen berechnen und den% -Wert anzeigen, obwohl Sie den Rohwert geplottet haben, ist Ihr Diagramm in den meisten Fällen irreführend und verwirrend.
Das direkte Zeichnen der Daten als Prozentwerte ist in diesem Fall die beste Vorgehensweise. Sie können den Rohdatenwert als zusätzliche Eigenschaft im Punktobjekt hinzufügen, wenn Sie ihn in einem QuickInfo oder an anderer Stelle anzeigen möchten ( zB Ссылка )
Wenn Sie darauf bestehen, die ursprüngliche Methode für zwei verschiedene Serien zu verwenden, können Sie einfach zwei verschiedene Variablen für die Berechnung erstellen und den Seriennamen im Formatierer überprüfen, um zu ermitteln, auf welche Datensumme zu rechnen ist.
probiere das.percentage
ausEs ist auch ziemlich gut in der highcharts API dokumentiert.
BEARBEITEN
Da Sie es für nicht gestapelte Serien benötigen würden, müssten Sie die Gesamtsumme vor dem Generieren des Diagramms abrufen ... Die folgende Funktion addiert Ihre Werte in eine Variable, die Sie später in Ihrer Formatierungsfunktion verwenden können.
%Vor%Tags und Links javascript charts highcharts