Ausblenden Etiketten auf jfreechart / PiePlot3D piechart
-
05-07-2019 - |
Frage
Ich versuche, die jfreechart PieChart3D zu verstecken Etiketten zu bekommen. Ich kann nichts in der Dokumentation.
Wer weiß, wie dies zu tun?
<% response.setContentType("image/png"); %><%@page import="org.jfree.data.general.*"%><%@page import="org.jfree.chart.*"%><%@page import="org.jfree.chart.plot.*"%><%@page import="java.awt.Color" %><%
DefaultPieDataset ds = (DefaultPieDataset)session.getAttribute("usagePieOutputDataset");
JFreeChart chart = ChartFactory.createPieChart3D
(
null, // Title
ds, // Dataset
false, // Show legend
false, // Use tooltips
false // Configure chart to generate URLs?
);
chart.setBackgroundPaint(Color.WHITE);
chart.setBorderVisible(false);
PiePlot3D plot = ( PiePlot3D )chart.getPlot();
plot.setDepthFactor(0.0);
plot.setLabelOutlinePaint(Color.LIGHT_GRAY);
plot.setLabelFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 10));
ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, 150, 144);
%>
Lösung
Damit werden alle Etiketten verstecken:
plot.setLabelGenerator(null); //null means no labels
Andere Tipps
Eigentlich scheint dies eine noch einfachere Art und Weise und auch viel kürzer zu sein.
Sie einfach das Label Distribution selbst (anonyme Implementierung) und so tun, dass es keine Etiketten von anzuzeigen sind eine Null in getItemCount()
zurück.
plot.setLabelDistributor(new AbstractPieLabelDistributor() {
public int getItemCount() { return 0; }
public void distributeLabels(double minY,double height) {}
});
Alte Lösung:
Sie wissen nicht, ob es ein einfacher Weg ist, aber das sollte funktionieren. Sollte selbsterklärend. zeigen Sie keine Links setzen einige Farben transparent und nicht Aufkleber erzeugen. Else einfach fragen.
Color transparent = new Color(0.0f,0.0f,0.0f,0.0f);
plot.setLabelLinksVisible(Boolean.FALSE);
plot.setLabelOutlinePaint(transparent);
plot.setLabelBackgroundPaint(transparent);
plot.setLabelShadowPaint(transparent);
plot.setLabelGenerator(new PieSectionLabelGenerator(){
@Override
public AttributedString generateAttributedSectionLabel(PieDataset dataset, Comparable key) {
return new AttributedString("");
}
@Override
public String generateSectionLabel(PieDataset dataset, Comparable key) {
return "";
}
});
Diese Arbeit für mich:
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setTickLabelsVisible(false);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow