Frage

Insbesondere Ich suche Textanmerkungen zu bestimmten Orten zu einem JFreeChart hinzuzufügen, die für die Verwendung im Web Ausgabe in eine PNG-Datei sein. Kann / wie Anmerkungen zu Tortendiagramme hinzugefügt bekommen tun. Ich konnte erfolgreich Anmerkungen zu XYPlots hinzufügen, aber nicht wissen, wie oder ein zu einem PiePlot hinzufügen zu überlagern.

Meine volle Aufgabe ist es, die PiePlot zu verwenden, um eine Art Uhr zu schaffen. Bisher hat alles super geklappt, aber jetzt brauche ich Etiketten hinzufügen an den 12, 3, 6 und 9 Uhr Standorte und völlig ratlos.

Adam

War es hilfreich?

Lösung 2

Nach einer ziemlich anstrengenden Suche Ich glaube nicht, dies derzeit möglich ist (JFreeChart 1.0.13). Mögliche Optionen sind:

Erstellen Sie ein zweites Diagramm mit einem XYPlot ein zweites Bild mit dem benötigten Annotationen zu erzeugen. Overlay dieses Bild auf der Seite. Diese Option ist schlecht, weil es die Zahl der Schaubilder verdoppelt hochgeladen werden.

Stellen Sie das Bild als Hintergrund auf der Seite und HTML den Text über das Bild. Bad, weil es nicht wartbar ist und macht Kopfweh der Datenübertragung.

Persönlich werde ich nur einen anderen Weg finden, die Informationen in den Titel zu kommunizieren, aber ich wollte meine Erkenntnisse für die nächste Person schreiben. Adam

Andere Tipps

Bit einer alten Frage, aber hier ist, wie ich habe etwas ähnliches (Anmerkung bei 1, 2, 3, ... Uhr-Positionen) ein Polardiagramm mit. Es verwendet eine ChoiceFormatter und die NumberTickUnit:

    final JFreeChart chart = ChartFactory.createPolarChart(
            "HAPI Hourly Usage (UTC)", ds, true, true, false);
    final PolarPlot plot = (PolarPlot) chart.getPlot();

    // Create a ChoiceFormat to map the degrees to clock positions
    double[] limits = new double[12];
    String[] formats = new String[12];
    limits[0] = 0;
    formats[0] = "12";

    // degrees = 360/12
    for (int i = 1; i < limits.length; i++) {
        limits[i] = degrees * (i);
        formats[i] = Integer.toString(i);
    }
    ChoiceFormat clock = new ChoiceFormat(limits, formats);

    TickUnit tickUnit = new NumberTickUnit(degrees, clock);

    // now configure the plot
    plot.setAngleTickUnit(tickUnit); // sets the ticks
    plot.setAngleLabelsVisible(true); // makes the labels visible
    plot.setAngleLabelPaint(Color.LIGHT_GRAY); // user choice
    plot.setAngleGridlinesVisible(true); // must set this to display the
                                         // labels
    plot.setAngleGridlinePaint(Color.BLACK); // plot's background color
                                             // (makes lines invisible)
    plot.setRadiusGridlinesVisible(false); //turn off the radius value circles
    ValueAxis axis = plot.getAxis();
    axis.setTickLabelsVisible(false); //turn off the radius value labels

windet aussehen wie http://img522.imageshack.us/img522/6693/ hapihours.jpg

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top