在jfreechart条形图中设置下限/上限

时间:2012-08-20 21:00:21

标签: java jfreechart

我是jfreechart的菜鸟,我有一个应用程序可以创建一个运行良好的简单条形图。问题是,我希望所有图表显示1到10的范围。当图表中的最高值低于该值时,该较低的值将是图表的上限,并且它将以不同的增量显示。从在线笔记中我不明白在哪里改变它......

DefaultCategoryDataset barDataSet = new DefaultCategoryDataset();
System.out.println("Setting values:");

barDataSet.setValue(rating.getFlavor(), "category", "Flavor");
barDataSet.setValue(rating.getBody(), "category", "Body");
barDataSet.setValue(rating.getAftertaste(), "category", "Aftertaste");
barDataSet.setValue(rating.getSweetness(), "category", "Sweetness");
barDataSet.setValue(rating.getFloral(), "category", "Floral");
barDataSet.setValue(rating.getSpice(), "category", "Spice");


JFreeChart chart = ChartFactory.createBarChart(null, // title
"category",     // left heading
"score",        // top heading
barDataSet,     // dataset
PlotOrientation.HORIZONTAL, 
false,      // no idea what this is
true,       // or this
false);     // or this

System.out.println("setting bg color");
Color bgcolor = new Color(237, 232, 228);
chart.setBackgroundPaint(bgcolor);

CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundPaint(new Color(112,112,112) );

感谢, bp的

2 个答案:

答案 0 :(得分:2)

您可以通过轴更改显示的范围。如果我没记错,您可以向JPreeChart实例询问XYPlot,其中包含域(x)和范围(y)轴。两者(当NumberAxis的实例)将具有setLowerBound(double)和setUpperBound(double)方法。

答案 1 :(得分:1)

chart.getXYPlot().getRangeAxis().setLowerBound(30.0);
chart.getXYPlot().getRangeAxis().setUpperBound(300.0);