我在java中使用JFreeCharts
创建一个条形图。我的问题很简单..。如何为条形图中的所有条形图选择自定义颜色?我不确定这种定制是否会在GradientPaint
中完成。确定条形图颜色的代码示例如下:
final GradientPaint gp0 = new GradientPaint(
0.0f, 0.0f, Color.blue,
0.0f, 0.0f, Color.blue
);
我不知道这是不是适合自定义颜色的方式。基本上,我不知道GradientPaint
是否正确。如果是的话,有人能让我知道如何编辑这段代码,使其成为自定义颜色而不是蓝色吗?
我不确定这是否有帮助,但是说自定义颜色的信息是
有了这个方法可以定制图表的颜色吗?
发布于 2014-07-03 14:00:11
我已经有一段时间没有用jfreechart.Bud编写代码了,如果我确实记得,这是我为更改条形油漆而编写的代码;)。
CategoryPlot cplot = (CategoryPlot)chart.getPlot();
cplot.setBackgroundPaint(SystemColor.inactiveCaption);//change background color
//set bar chart color
((BarRenderer)cplot.getRenderer()).setBarPainter(new StandardBarPainter());
BarRenderer r = (BarRenderer)chart.getCategoryPlot().getRenderer();
r.setSeriesPaint(0, Color.blue);
我正在查看我的第一个应用程序written.Im的代码,不确定它现在是否能工作。
为了将来我推荐谷歌或购买jfreechart.You的PDF指南,如果可能的话,找到所有的参考资料和样本there.Bud,跳到JavaFX,我强烈推荐它,在javafx中使用pain.To be honest.Implementing图表很容易,而且看起来更好;)
发布于 2014-07-08 19:48:38
CategoryPlot plot = chart.getCategoryPlot();
BarRenderer renderer = (BarRenderer) plot.getRenderer();
// set the color (r,g,b) or (r,g,b,a)
Color color = new Color(79, 129, 189);
renderer.setSeriesPaint(0, color);
这将把所有的条形设置为特定的颜色。如果希望更改每一行的颜色(例如,对于堆叠条形图),则可以调用dataset.getRowCount()
( dataset类型为CategoryDataset
),以返回条形图中每一列所涉及的行数。然后,可以根据行的索引在renderer.setSeriesPaint()
调用中对系列进行索引。
for (int i = 0; i < dataset.getRowCount(); i++){
switch (i) {
case 0:
// red
color = new Color(255, 0, 0);
break;
case 1:
// blue
color = new Color(0, 0, 255);
break;
default:
// green
color = new Color(0, 255, 0);
break;
}
}
发布于 2017-05-06 06:41:20
使用JfreeChart在条形图中自定义颜色
CategoryItemRenderer barColor = new CustomRenderer(new Paint[]{});
plot.setRenderer(barColor);
创建一个新的类名为CustomRenderer extends BarRenderer3D
或选择BarRenderer
class CustomRenderer extends BarRenderer3D {
private Paint[] colors;
public CustomRenderer(final Paint[] colors) {
this.colors = colors;
}
public Paint getItemPaint(final int row, final int column) {
if(column==0)
return Color.blue;
else if(column==1)
return Color.CYAN;
else
return Color.RED;
}
}
https://stackoverflow.com/questions/24555380
复制相似问题