这个问题困惑了我好长时间。今天再次查资料发现了一个小方法。呵呵。还真可以实现。可以使用堆积条形图,使其中一个Series 为0就可以了。当然也可以用堆积立体图。
/**//*
* 堆积条形图
* 21
*/
public JFreeChart creStackedBarChart( DefaultCategoryDataset defaultcategorydataset){
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(32.399999999999999D, "Series 1 ", "Category 1 "); //只显 示这种颜色的。
defaultcategorydataset.addValue(0, "Series 2 ", "Category 1 ");
defaultcategorydataset.addValue(0, "Series 3 ", "Category 1 ");
defaultcategorydataset.addValue(43.200000000000003D, "Series 1 ", "Category 2 ");
defaultcategorydataset.addValue(15.6D, "Series 2 ", "Category 2 ");
defaultcategorydataset.addValue(18.300000000000001D, "Series 3 ", "Category 2 ");
defaultcategorydataset.addValue(23D, "Series 1 ", "Category 3 ");
defaultcategorydataset.addValue(11.300000000000001D, "Series 2 ", "Category 3 ");
defaultcategorydataset.addValue(25.5D, "Series 3 ", "Category 3 ");
defaultcategorydataset.addValue(13D, "Series 1 ", "Category 4 ");
defaultcategorydataset.addValue(11.800000000000001D, "Series 2 ", "Category 4 ");
defaultcategorydataset.addValue(29.5D, "Series 3 ", "Category 4 ");
JFreeChart jfreechart = ChartFactory.createStackedBarChart(
"Exception", "Segment Num", "Segment Average Motion",
defaultcategorydataset,
PlotOrientation.VERTICAL,
true, true, false);
jfreechart.setBackgroundPaint(Color.white);
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
categoryplot.setBackgroundPaint(Color.lightGray);
categoryplot.setRangeGridlinePaint(Color.white);
StackedBarRenderer stackedbarrenderer = (StackedBarRenderer)categoryplot.getRenderer();
stackedbarrenderer.setDrawBarOutline(false);
stackedbarrenderer.setBaseItemLabelsVisible(true);
stackedbarrenderer.setSeriesItemLabelGenerator(0, new StandardCategoryItemLabelGenerator());
return jfreechart;
}
走过这半年的学习的时光,让我越来越感觉到只要我们想尽一切办法坚持去做,没有什么事能难倒我们。朋友们,加油!!!!!!!!!