You need to enable JavaScript to run this app. JFreeChart XYAreaChart系列颜色叠加显示异常问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

JFreeChart XYAreaChart系列颜色叠加显示异常问题咨询

问题原因

JFreeChart的XYAreaRenderer默认使用半透明效果填充区域,上层黑色系列的半透明填充和下层红色区域叠加,就会呈现红黑混合的过渡色,并非颜色设置错误。

解决方法

直接修改渲染器的透明度配置,将填充设置为完全不透明即可,你只需要在原有渲染器配置代码中新增一行透明度设置:

XYAreaRenderer movingAverageRenderer = new XYAreaRenderer();
// 新增:设置填充完全不透明,取值范围0.0f(完全透明)~1.0f(完全不透明)
movingAverageRenderer.setAlpha(1.0f);
movingAverageRenderer.setUseFillPaint(false);
movingAverageRenderer.setSeriesPaint(0, Color.red);
movingAverageRenderer.setSeriesPaint(1, Color.black);
plot.setRenderer(movingAverageRenderer);

如果修改后仍存在色差,可以开启独立填充色配置,分别指定每个系列的边框和填充颜色,修改代码如下:

XYAreaRenderer movingAverageRenderer = new XYAreaRenderer();
movingAverageRenderer.setUseFillPaint(true);
// 配置系列0(红色)
movingAverageRenderer.setSeriesPaint(0, Color.red);
movingAverageRenderer.setSeriesFillPaint(0, Color.red);
// 配置系列1(黑色)
movingAverageRenderer.setSeriesPaint(1, Color.black);
movingAverageRenderer.setSeriesFillPaint(1, Color.black);
// 保证完全不透明
movingAverageRenderer.setAlpha(1.0f);
plot.setRenderer(movingAverageRenderer);

可选调整

如果你需要修改系列的堆叠层级,可以调整绘制顺序:

  • 默认按系列索引从小到大绘制,索引值大的系列会覆盖在上方
  • 如需颠倒顺序,可添加代码:plot.setSeriesRenderingOrder(SeriesRenderingOrder.REVERSE);

内容的提问来源于stack exchange,提问作者Клим

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 06:45:07