Ich habe eine Frage zu JFreeChart
: Ist es möglich, die PlotOrientation
eines BoxAndWhiskerChart
zu horizontal zu ändern? Ich habe ein Histogramm, und ich möchte ein BoxAndWhiskerChart
unten hinzufügen. Ich brauche es horizontal, damit ich die gleiche Achsenskala verwenden kann. Ich habe versucht, die Ausrichtung in Plot
und ChartPanel
zu ändern.PlotOrientation von BoxAndWhiskerChart JFreeChart
2
A
Antwort
1
@Catalina Insel zeigt den richtigen Weg, um die PlotOrientation
here, zu ändern, aber Sie können für PlotOrientation.HORIZONTAL
in einen Fehler in den BoxAndWhiskerRenderer
weiter unten ausgeführt werden. Beachten Sie die abgeschnittene Linie auf dem unteren Whisker.
Das Problem ist here in drawHorizontalItem()
:
g2.draw(new Line2D.Double(xxMin, yymid - halfW, xxMin, yymid + halfW));
-Code wie geprüft::
g2.draw(new Line2D.Double(xxMin, yymid - halfW, xxMin, yy + halfW));
was das sein sollte
import java.awt.Dimension;
import java.awt.EventQueue;
import java.util.Arrays;
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.statistics.DefaultBoxAndWhiskerCategoryDataset;
/**
* @see https://stackoverflow.com/a/38407595/230513
*/
public class BoxPlot {
private void display() {
JFrame f = new JFrame("BoxPlot");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DefaultBoxAndWhiskerCategoryDataset data = new DefaultBoxAndWhiskerCategoryDataset();
data.add(Arrays.asList(30, 36, 46, 55, 65, 76, 81, 80, 71, 59, 44, 34), "Planet", "Endor");
JFreeChart chart = ChartFactory.createBoxAndWhiskerChart(
"Box and Whisker Chart", "Planet", "Temperature", data, false);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setOrientation(PlotOrientation.HORIZONTAL);
f.add(new ChartPanel(chart) {
@Override
public Dimension getPreferredSize() {
return new Dimension(500, 300);
}
});
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new BoxPlot()::display);
}
}
1
können Sie die PlotOrientation
auf dem wie diese CategoryPlot
ändern.
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setOrientation(PlotOrientation.HORIZONTAL);
Verwandte Themen
- 1. JFreeChart Annotationen
- 2. CategoryPlot von einer JTable - JFreeChart
- 3. Jfreechart-Auswahl
- 4. JFreeChart Etikettenbreite
- 5. JFreeChart & Lazy loading
- 6. 3D-Diagramm mit Jfreechart
- 7. Ohlc Diagramm in JFreeChart
- 8. JFreeChart x-Achse Skala
- 9. JFreeChart Maximum Zoom Out
- 10. JFreechart XYPlot Überlappende Datenartefakte
- 11. JFreeChart vermisst einige Mausklicks
- 12. Hilfe mit JFreeChart-Overlay
- 13. Wie Rendern von JFreeChart in Play Framework
- 14. Schließen von Leerzeichen im JFreeChart-Balkendiagramm
- 15. Speichern/Laden jFreeChart TimeSeriesCollection-Diagramm von XML
- 16. Ändern der Farbe von Etiketten in JFreeChart
- 17. Punkte anstelle von Linien zeichnen? JFreeChart PolarChart
- 18. Kompilieren von Fehlern in Netbeans mit JFreeChart
- 19. Ohlc Diagramm in jfreechart
- 20. Balkendiagramm-Ausgabe (mit JFreechart)
- 21. JFreeChart mit SWT
- 22. JFreeChart-like in Delphi
- 23. JFreeChart tick Einheiten
- 24. JFreeChart mit markierten Punkten
- 25. Mausereignisse in JfreeChart
- 26. JFreeChart get mouse coordinates
- 27. Histogramm in Jfreechart
- 28. Kreisdiagramm ohne Beschriftungen in JFreeChart
- 29. Dynamisch JFreeChart in Servlet generieren
- 30. JFreeChart Versteckt (einige) x Achsenwerte
Melden Sie sich an [hier] (http://www.jfree.org/forum/viewtopic.php?f=3&t=117622). – trashgod