Jfreechart中的动态饼图 - 如何设置颜色

时间:2015-06-26 23:05:26

标签: java jfreechart

我正在尝试使用JFreeChart绘制动态饼图。我不知道提前会有多少部分。我每秒都会收到更新图表的数据。

如何为图表的每个部分设置颜色?我不希望有默认颜色。

我尝试过设置DrawingSupplier。不行。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

饼图图表的Plot可以投射到PiePlot,可以设置每个饼图的颜色,轮廓颜色,阴影颜色等。下面是一个为每个馅饼设置颜色的小样本。如果碎片的数量大于我们的数组中定义的颜色数量,那么它将重复使用这些颜色。

setSectionPaint方法采用任何类型的java.awt.Paint,因此您还可以传递渐变颜料等。

PieDataset dataset = ...
JFreeChart chart = ChartFactory.createPieChart("My Chart", dataset, false, true, false);

// all possible colors for each piece of the pie
Color[] colors = new Color[] { new Color(232, 124, 35),
        new Color(51, 109, 178), new Color(182, 52, 49),
        new Color(103, 131, 45), new Color(108, 77, 146),
        new Color(46, 154, 183), new Color(151, 64, 64) };

PiePlot plot = (PiePlot) chart.getPlot();
// set each sections inside paint
int i = 0;
for (Object key : dataset.getKeys()) {
    plot.setSectionPaint((Comparable) key, colors[i % colors.length]);
    i++;
}