JFreechart XYAreaChart 改变颜色

3
我有一个面积图,我想把图表中大于0的区域涂成绿色,小于0的区域涂成红色。我尝试使用SetSeriesPaint()方法,但它会使所有的区域都涂上同一种颜色。如何解决这个问题?
以下是我的代码:
final XYSeries series = new XYSeries("Data");

XYSeriesCollection dataset = new XYSeriesCollection(series);


JFreeChart chart = ChartFactory.createXYAreaChart("Fun Meter", "", "",
        dataset, PlotOrientation.VERTICAL, false, false, false);


// jframe=new ChartFrame("Fun Meter", chart);

ChartPanel CP = new ChartPanel(chart);

XYPlot xyPlot = (XYPlot) chart.getPlot();



xyPlot.getRenderer().setSeriesPaint(0, Color.red);

xyPlot.setForegroundAlpha(0.75f);
1个回答

2
使用XYDifferenceRenderer
XYDifferenceRenderer r = new XYDifferenceRenderer(Color.green,Color.red, false);
plot.setRenderer(r);       

enter image description here


你知道如何使用区域相同的颜色来更改边框线(或形状)的颜色吗? - hamza-don
@user2928578 在构造函数中设置 setSeriesPaintsetSeriesShape 的形状可见性。 - GrahamA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接