您好我试图在JFree图表中创建一个条形图和折线图组合的图表。条形图是时间与时间,每小时它将比较两个(或更多)不同的值。
折线图使用与条形图相同的比例,并显示数据集的整体趋势。
答案 0 :(得分:2)
您可以在同一个绘图上绘制每个数据集,并为每个数据集使用不同的渲染器(例如BarRenderer
和LineAndShapeRenderer
)。下面是一个简化示例,它生成一些模拟数据值(1-9)并在同一ChartPanel上呈现与条形和线条相同的数据。
//Mock data
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
int[] times = new int[]{1,2,3,4,5,6,7,8,9};
for ( int i = 0; i < times.length; i++ ){
dataset.addValue(times[i], "Time", "Hour" + String.valueOf(i+1));
}
//create the plot
CategoryPlot plot = new CategoryPlot();
//add the first dataset, and render as bar values
CategoryItemRenderer renderer = new BarRenderer();
plot.setDataset(0,dataset);
plot.setRenderer(0,renderer);
//add the second dataset, render as lines
CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
plot.setDataset(1, dataset);
plot.setRenderer(1, renderer2);
//set axis
plot.setDomainAxis(new CategoryAxis("Time"));
plot.setRangeAxis(new NumberAxis("Value"));
结果图表: