Wie nur Integer (keine Dezimalstellen) in Diagramm-API-X / Y-Achsenbeschriftungen angezeigt werden
Ich bin mit einem Säulen-Diagramm mit dem Google-Diagramm-JS-Api. Ich bin Anzeige einige Werte (Gesamt Bestellungen per Tag), dass kann nur dargestellt werden als ganze zahlen.
Alles funktioniert Super, außer dass, wenn eine der Tabellen, ich bin die Anzeige ist-Werte, die zu niedrig sind, wie 1 oder 2 ist, beginnt es zu zeigen, Dezimalzahlen auf der y-Achse. Die Nachkommastellen dumm b/c es ist unmöglich, "die Hälfte" ein, um (was ich auch zähle), und ich möchte zu verstecken, wenn möglich.
Kommentar zu dem Problem
Ich bin nicht vertraut mit der Google chart API, aber können Sie sich bewerben
parseInt(val)
, um die zahlen, bevor Sie Sie anzeigen? Ich bin mir nicht sicher, ich weiß was du meinst, ich bin schon liefert Sie als int-Werte, wenn die Seite gerendert wird. Die Nachkommastellen werden nur angezeigt, wenn die Anzahl vertreten ist sehr klein, wie 1 oder 2.
Klingt wie ein floating-point-Fehler irgendeiner Art, dann. Wenn dem so ist,
parseInt(val)
ist der richtige Ansatz, um Sie zu beseitigen. Das ist der beste Rat, den ich geben kann, ohne eine bestimmte Instanz zu betrachten. Haben Sie jemals herausfinden? Ich habe das gleiche problem.
InformationsquelleAutor der Frage jpswain | 2011-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinweis: Bitte sehen Sie https://stackoverflow.com/a/16036721/390977, als meine Antwort falsch ist. (Ich kann es nicht löschen, weil es akzeptiert wurde.)
In Ihre Optionen können Sie bestimmen, wird die Zahlenformatierung für die chxs Wert:
Hier wird eine float-Wert (
f
) mit 0 Dezimalstellen (f0
).http://code.google.com/apis/chart/image/docs/gallery/bar_charts.html#axis_label_styles
InformationsquelleAutor der Antwort Ian Hunter
Ich habe nicht genug rep Antwort auf Ian Hunter ' s post direkt, aber was tut, ist das format das Etikett, aber nicht den raster-Zeilen auf den gleichen Wert wie das label, das kann zu unerwünschten Ergebnissen. Also lassen Sie uns sagen, Sie haben diesen Linien:
10
7.5
5
2.5
0
Wenn Sie formatieren Sie das Etikett, um nur Ganzzahlen zeigt er das an:
10
8
5
3
0
Aber dann werden Ihre Daten auf dem graph nicht tie-in mit der y-Achse Beschriftungen. E. g, Wenn Sie einen Wert von 3 es zeigt eigentlich oben '3' - labels, da die '3' label ist eigentlich 2.5
Leider die einzige Lösung, die ich denken konnte, war zur überwachung der min/max-Bereiche der Daten in der Grafik dargestellt, und wenden Sie dann einige Logik zum festlegen der min/max, je nachdem wie viele y-Skala Etiketten habe ich, so dass Sie würde teilen mit keine Reste.
Also im obigen Fall, würde ich es so einrichten,
Diese geben würde, grid-Linien
12
8
6
4
0
Keine Nachkommastellen und keine Probleme mit den Daten nicht korrelieren mit den Bezeichnungen auf dem Diagramm.
InformationsquelleAutor der Antwort BigMeat
verwenden Sie die option
als in
InformationsquelleAutor der Antwort Thaer Mohazia
Hinzufügen {format : 0} wandelt die float-ticks auf ganze zahlen, sondern die tatsächlichen Werte, auf die Balken falsch angezeigt.
Ist der wichtigste Punkt die Google Charts API setzt Voraus, Sie wollen 5 Rasterlinien meist, das kann nicht funktionieren, geben Sie integer-tick-Werte.
Hinzufügen dieser gab mir schöne Runde tick-Werte -
Quelle - https://groups.google.com/forum/#!topic/google-visualization-api/4qCeUgE-OmU
InformationsquelleAutor der Antwort prad
wenn Sie möchten, dass nur die ganzzahligen Werte angezeigt werden, sollten Sie ergreifen, um Konto, google charts zeigen will, das Sie mindestens 5 Rasterlinien. Vorausgesetzt, alle von Ihnen sollten ganze Zahl geben Sie die Grafik nach:
InformationsquelleAutor der Antwort Yevgeniy Afanasyev
Der einfachste Weg ist, Bearbeiten Sie die linke vertikale Achse, bei Min 0 und Max als ein Vielfaches von 5 (5, 10, 15 etc) entsprechend Ihrer erwarteten maximalen.
InformationsquelleAutor der Antwort Bernie
In meinem Fall habe ich Werte im Bereich von 0 bis 600.
In dieser Weise Sie nur die Anzeige der 'ganze zahlen'.
Müssen Sie dynamisch zu generieren, die javascript-off-Kurs.
Code Beispiel:
InformationsquelleAutor der Antwort Cagy79
Ich bin mit dem folgenden code:
Einfach berechnen Sie Ihren maximalen Wert und legen Sie dann die Gitternetzlinien.zählen Sie zu diesem Wert
InformationsquelleAutor der Antwort Vitali D.
Ich bin mit der Guave Multiset als meine Daten. Cagy79 trick ist das einzige, das ich in der Lage war, zu arbeiten. Ich habe auch versucht Erzeugung von meinen eigenen Zeilen mit einem IntStream, hatte aber immer noch gebrochene zahlen für einige der Graphen. Wie oben erwähnt, nur die Einstellung das format wird ein Diagramm erstellen, wo der Mauszeiger über den Wert und die Zählzeiten des Rasters unterscheiden.
Multiset items = TreeMultiset.create();
Elemente Hinzugefügt werden .hinzufügen und .addAll
Sicher, dass die Artikel sortiert sind:
vorkommen = Multimengen.copyHighestCountFirst(items);
String option = "hAxis : { title : 'Anzahl', Gitternetzlinien : { count:" +
((max >=12) ? 4 : max+1)
+ } }")
InformationsquelleAutor der Antwort Gregory Alan Bolcer