Heim >Java >javaLernprogramm >Wie kann ich bei dynamischen Aktualisierungen der JFreeChart-Serie ohne zeitbasierte Achse Fehler beheben?

Wie kann ich bei dynamischen Aktualisierungen der JFreeChart-Serie ohne zeitbasierte Achse Fehler beheben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-16 11:41:11859Durchsuche

How to Troubleshoot Dynamic JFreeChart Series Updates Without a Time-Based Axis?

Fehlerbehebung bei zufälligen Fehlern beim Ändern von Serien mit JFreeChart

Einführung
Diese Diskussion befasst sich mit Problemen, die beim Versuch auftreten Aktualisieren Sie einen JFreeChart-Datensatz dynamisch, indem Sie Serien hinzufügen und entfernen. Das Ziel besteht darin, sich ändernde Datenpunkte im Laufe der Zeit zu visualisieren, ohne sich auf eine zeitbasierte X-Achse oder die Verwendung der DynamicTimeSeriesCollection zu verlassen.

Probleme und Lösungen

Die bereitgestellten Codeversuche den Datensatz durch wiederholtes Hinzufügen und Entfernen einer Reihe zu aktualisieren, aber dieser Ansatz ist falsch. Stattdessen sollte der Datensatz innerhalb der Methode „process()“ eines SwingWorkers aktualisiert werden.

Um außerdem ein Diagramm mit einer Domäne zu erstellen, die auf der Anzahl der Iterationen und nicht auf der Zeit basiert, verwenden Sie eine NumberAxis anstelle einer DateAxis.

Beispielcode

Der folgende Codeausschnitt zeigt, wie man den Fortschritt eines verfolgt Berechnung mithilfe eines Liniendiagramms:

private XYSeries series = new XYSeries("Result");
…
@Override
protected void process(List<Double> chunks) {
    for (double d : chunks) {
        label.setText(df.format(d));
        series.add(++n, d);
    }
}

Das Diagramm wird im Verlauf der Berechnung automatisch aktualisiert.

Zusätzliche Überlegungen

  • Korrekte Synchronisierung: Der Datensatz sollte nur über die Methode „process()“ eines SwingWorkers geändert werden, um den Thread sicherzustellen Sicherheit.
  • NumberAxis:Verwenden Sie eine NumberAxis sowohl für die Domäne als auch für den Bereich, wenn Sie ein Liniendiagramm mit einer nicht zeitbasierten X-Achse verwenden.
  • Formsichtbarkeit: Stellen Sie die Formsichtbarkeit des Renderers auf „True“ ein, um Datenpunkte als Kreise auf dem anzuzeigen Zeile.
  • Fortschrittsbalken: Verwenden Sie einen Fortschrittsbalken, um visuelles Feedback über den Fortschritt der Berechnung zu geben.

Das obige ist der detaillierte Inhalt vonWie kann ich bei dynamischen Aktualisierungen der JFreeChart-Serie ohne zeitbasierte Achse Fehler beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn