将条形图和折线图与 J 免费图表相结合

Combining a BarChart and Linechart with J free chart

您好,我正在尝试在 JFree 图表中创建一个组合了条形图和折线图的图表。条形图是 vs 时间,每个小时都会比较两个(或更多)不同的值。

折线图使用与条形图相同的尺度,显示数据集的整体趋势。

您可以在同一个图上绘制每个数据集,并为每个数据集使用不同的渲染器(例如 BarRendererLineAndShapeRenderer)。下面是一个简化的示例,它生成一些模拟数据值 (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"));

生成的图表: