JFreeChart柱状图中如何取消柱子的倒影,让柱子显示为一个平面图Render 该怎么设置呢?

解决方案 »

  1.   

    import java.awt.Dimension;import javax.swing.JPanel;import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.DatasetRenderingOrder;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.renderer.category.IntervalBarRenderer;
    import org.jfree.chart.renderer.category.StandardBarPainter;
    import org.jfree.chart.renderer.category.StatisticalLineAndShapeRenderer;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.category.DefaultIntervalCategoryDataset;
    import org.jfree.data.category.IntervalCategoryDataset;
    import org.jfree.data.statistics.DefaultStatisticalCategoryDataset;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;public class MixedChartSample extends ApplicationFrame
    { private static final long serialVersionUID = -7603585542993855184L; public MixedChartSample(String s)
    {
    super(s);
    JPanel jpanel = createDemoPanel();
    jpanel.setPreferredSize(new Dimension(500, 270));
    setContentPane(jpanel);
    } private static CategoryDataset createDataset1()
    {
    DefaultStatisticalCategoryDataset defaultstatisticalcategorydataset = new DefaultStatisticalCategoryDataset();
    defaultstatisticalcategorydataset.add(10D, 2.3999999999999999D, "Row 1", "Column 1");
    defaultstatisticalcategorydataset.add(15D, 4.4000000000000004D, "Row 1", "Column 2");
    defaultstatisticalcategorydataset.add(13D, 2.1000000000000001D, "Row 1", "Column 3");
    defaultstatisticalcategorydataset.add(7D, 1.3D, "Row 1", "Column 4");
    defaultstatisticalcategorydataset.add(22D, 2.3999999999999999D, "Row 2", "Column 1");
    defaultstatisticalcategorydataset.add(18D, 4.4000000000000004D, "Row 2", "Column 2");
    defaultstatisticalcategorydataset.add(28D, 2.1000000000000001D, "Row 2", "Column 3");
    defaultstatisticalcategorydataset.add(17D, 1.3D, "Row 2", "Column 4");
    return defaultstatisticalcategorydataset;
    }

    private static IntervalCategoryDataset createDataset2()
    {
    double ad[] = {
    0.10000000000000001D, 0.20000000000000001D, 0.29999999999999999D
    };
    double ad1[] = {
    0.29999999999999999D, 0.40000000000000002D, 0.5D
    };
    double ad2[] = {
    0.5D, 0.59999999999999998D, 0.69999999999999996D
    };
    double ad3[] = {
    0.69999999999999996D, 0.80000000000000004D, 0.90000000000000002D
    };
    double ad4[][] = {
    ad
    // , ad1
    };
    double ad5[][] = {
    ad2
    // , ad3
    };
    DefaultIntervalCategoryDataset defaultintervalcategorydataset = new DefaultIntervalCategoryDataset(ad4, ad5);
    return defaultintervalcategorydataset;
    } private static JFreeChart createChart(CategoryDataset categorydataset)
    {
    // JFreeChart jfreechart = ChartFactory.createLineChart("Statistical Line Chart Demo 1", "Type", "Value", categorydataset, PlotOrientation.VERTICAL, true, true, false);
    JFreeChart jfreechart = ChartFactory.createBarChart("Statistical Line Chart Demo 1", "Type", "Value", categorydataset,PlotOrientation.VERTICAL, true, true, false);
    CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
    IntervalBarRenderer intervalBarRender = new IntervalBarRenderer();
    // categoryplot.setRenderer(intervalBarRender);
    categoryplot.setRenderer(0, intervalBarRender);
    NumberAxis numberAxis = new NumberAxis("Y轴");
    categoryplot.setRangeAxis(1, numberAxis);
    categoryplot.setDataset(1, createDataset1());
    // categoryplot.mapDatasetToDomainAxis(1, 1);
    categoryplot.mapDatasetToRangeAxis(1, 1);
    categoryplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
    intervalBarRender.setBarPainter(new StandardBarPainter());
    intervalBarRender.setItemMargin(-0.01);
    StatisticalLineAndShapeRenderer statisticallineandshaperenderer = new StatisticalLineAndShapeRenderer(true, false);
    statisticallineandshaperenderer.setUseSeriesOffset(true);
    categoryplot.setRenderer(1, statisticallineandshaperenderer);

    /* categoryplot.setRangePannable(true);
    categoryplot.mapDatasetToRangeAxis(1, 1);
    CategoryAxis categoryaxis = categoryplot.getDomainAxis();
    categoryaxis.setUpperMargin(0.0D);
    categoryaxis.setLowerMargin(0.0D);
    NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
    numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    numberaxis.setAutoRangeIncludesZero(false);*/

    return jfreechart;
    } public static JPanel createDemoPanel()
    {
    JFreeChart jfreechart = createChart(createDataset2());
    ChartPanel chartpanel = new ChartPanel(jfreechart);
    chartpanel.setMouseWheelEnabled(true);
    return chartpanel;
    } public static void main(String args[])
    {
    MixedChartSample statisticallinechartdemo1 = new MixedChartSample("JFreeChart: StatisticalLineChartDemo1.java");
    statisticallinechartdemo1.pack();
    RefineryUtilities.centerFrameOnScreen(statisticallinechartdemo1);
    statisticallinechartdemo1.setVisible(true);
    }
    }
      

  2.   

    答案
    intervalBarRender.setShadowVisible(false);