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);
    %>

http: //www.jfree .org / jfreechart / api / javadoc / org / jfree / Chart / Grundstück / PiePlot3D.html

War es hilfreich?

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
scroll top