如何更改jFreeChart栏中特定条形的颜色

时间:2015-11-11 19:41:27

标签: java swing colors jfreechart bar-chart

我编写了一个应用程序,它从jTable中读取一列并在条形图中绘制它。 它工作正常,但现在,我想根据从长度列中读取的值,为图表的某些条添加颜色。

以下是我的应用程序的正常示例:

Example

现在,正如我所解释的那样,我想改变特定条形的颜色,例如遵守这条规则:

如果长度为> 18 我们会为条纹着色 BLUE

否则,如果长度为< = 18 我们会为条纹着色 RED

1 个答案:

答案 0 :(得分:3)

生成数据集:

final double[][] data = new double[][] {{4.0, 3.0, -2.0, 3.0, 6.0}};
DatasetUtilities.createCategoryDataset("Length", "Day of the Month", data);

在创建渲染器时迭代每个点并定义自己的颜色:

Paint[] colors = new Paint[data.length];
for (int i = 0; i < colors.length; i++) {
    color[i] = data > 18 ? Color.blue : Color.red;
}
final CategoryItemRenderer renderer = new CustomRenderer(colors);

这篇文章很有用:Different bar chart colours within a series

希望它有所帮助。