一切似乎都工作正常,唯一的问题是应该生成的图表是一个彼此不连接的条形图,但是我最终得到的图表不是我想要的图表。
我关注了一个视频,代码似乎很相似,所以我无法弄清楚出了什么问题:
try {
int rubyPoints = Integer.parseInt(getHP("Ruby"));
int amberPoints = Integer.parseInt(getHP("Amber"));
int pearlPoints = Integer.parseInt(getHP("Pearl"));
int sapphirePoints = Integer.parseInt(getHP("Sapphire"));
DefaultCategoryDataset barChartData = new DefaultCategoryDataset();
barChartData.setValue(rubyPoints, "House Points", "Ruby");
barChartData.setValue(amberPoints, "House Points", "Amber");
barChartData.setValue(pearlPoints, "House Points", "Pearl");
barChartData.setValue(sapphirePoints, "House Points", "Sapphire");
JFreeChart barChart = ChartFactory.createAreaChart("House Points",
"All houses", "Amount of points", barChartData, PlotOrientation.VERTICAL, false, true, false);
CategoryPlot barchrt = barChart.getCategoryPlot();
barchrt.setRangeGridlinePaint(Color.BLUE);
ChartPanel barPanel = new ChartPanel(barChart);
panelChart.removeAll();
panelChart.add(barPanel, BorderLayout.CENTER);
panelChart.validate();
} catch (IOException ioe) {
// error handling
}
图表如下所示(这不是我需要的样子):
最佳答案
这非常简单:您创建的图表不是 barChart
,而是 areaChart
。
为了获得您想要的结果,只需将实例化图表的行更改为:
JFreeChart barChart = ChartFactory.createBarChart("House Points",
"All houses", "Amount of points", barChartData, PlotOrientation.VERTICAL, false, true, false);
你会得到类似的东西:
关于java - 条形图是相互连接的,但我需要它是分开的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41031779/