我正在尝试使用 JFreeChart 绘制动态饼图。我不知道有多少部分会提前出现。我每秒都会收到更新图表的数据。
如何为图表的每个部分设置颜色?我不希望使用默认颜色。
我尝试过设置DrawingSupplier。不起作用。有人可以帮忙吗?
最佳答案
饼图的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++;
}
关于java - Jfreechart 中的动态饼图 - 如何设置颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083392/