我用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,同一个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);
}
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)
这个我研究过,你可以看一下,常用的设置都也得很详细