我正在尝试使用JFreeChart绘制动态饼图。我不知道提前会有多少部分。我每秒都会收到更新图表的数据。
如何为图表的每个部分设置颜色?我不希望有默认颜色。
我尝试过设置DrawingSupplier。不行。有人可以帮忙吗?
答案 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++;
}