我用jfreechart写了一个柱状图的小程序,问题有两个:
1,同一个Category中的两个柱子相隔的太远,请问如何解决
2,如何把同一个Category中的两个柱子用不同颜色显示。
这两个小问题对达人来说,小菜,但是我捣鼓了好半天,谢谢了我觉得的问题代码如下:
protected JFreeChart createChart(CategoryDataset categorydataset)
    {
///*
        JFreeChart jfreechart = ChartFactory.createBarChart3D(charttitle, x_name, y_name, categorydataset, PlotOrientation.VERTICAL, false, true, false);//ftf
        CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
        CustomBarRenderer3D custombarrenderer3d = new CustomBarRenderer3D();
        custombarrenderer3d.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
        custombarrenderer3d.setBaseItemLabelsVisible(true);
       
        custombarrenderer3d.setItemLabelAnchorOffset(10D);
        custombarrenderer3d.setPositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
        categoryplot.setRenderer(custombarrenderer3d);
        ValueMarker valueer = new ValueMarker(0.69999999999999996D, new Color(200, 200, 255), new BasicStroke(0.10F), new Color(200, 200, 255), new BasicStroke(0.10F), 0.1F);
        categoryplot.addRangeMarker(valueer, Layer.BACKGROUND);
        custombarrenderer3d.setItemLabelsVisible(true);
        custombarrenderer3d.setMaximumBarWidth(0.0050000000000000003D);
        NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
        //numberaxis.setNumberFormatOverride(NumberFormat.getPercentInstance());
        numberaxis.setNumberFormatOverride(NumberFormat.getNumberInstance());
        numberaxis.setUpperMargin(0.10000000000000001D);
}        

解决方案 »

  1.   

    之前玩struts2顺便玩过jfreechart哈哈~其实这些官方的sample上都有贴一下笔记吧 CategoryPlot plot = (CategoryPlot)chart.getPlot();
    CategoryItemRenderer r=  plot.getRenderer();
    r.setSeriesPaint(0, Color.GREEN);变色
    CategoryPlot plot = (CategoryPlot)chart.getPlot();
    CategoryItemRenderer r=  plot.getRenderer();
    r.setSeriesPaint(0, Color.GREEN);空隙
    TimeSeries spring = new TimeSeries("萝卜" , Hour.class);
    spring.add(new Hour(10, 1,1,2006), 3400);
    spring.add(new Hour(12, 1,1,2006), 1400);
    spring.add(new Hour(13, 1,1,2006), 2400);
    spring.add(new Hour(14, 1,1,2006), 4400);

    TimeSeries lightWeight = new TimeSeries("白菜" , Hour.class);
    lightWeight.add(new Hour(10, 1,1,2006), 2800);
    lightWeight.add(new Hour(12, 1,1,2006), 3700);
    lightWeight.add(new Hour(13, 1,1,2006), 2600);
    lightWeight.add(new Hour(14, 1,1,2006), 2100);
    时间轴Hour
    public Hour(java.util.Date time,
                java.util.TimeZone zone)
      

  2.   

    支持一下。楼主还是仔细看看人家的demo,都很好的。
      

  3.   

    http://blog.csdn.net/jiqimiao/archive/2008/01/05/2026900.aspx
    这个我研究过,你可以看一下,常用的设置都也得很详细