如何在JFreeChart散点图中创建空心标记

问题描述 投票:0回答:1

我尝试以下操作以在散点图中获得空心标记:

XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) chart.getXYPlot().getRenderer();
renderer.setUseFillPaint(false);

它不起作用,标记仍被填充。

jfreechart marker scatter
1个回答
0
投票

从源代码:

 if (getItemShapeFilled(series, item)) {
                if (this.useFillPaint) {
                    g2.setPaint(getItemFillPaint(series, item));
                }
                else {
                    g2.setPaint(getItemPaint(series, item));
                }
                g2.fill(shape);
   }

对于第一个if,没有其他内容,因此我们需要getItemShapeFilled返回false。看起来像这样:

  public boolean getItemShapeFilled(int series, int item) {
        Boolean flag = getSeriesShapesFilled(series);
        if (flag != null) {
            return flag;
        }
        return this.baseShapesFilled;
  }

最简单的方法是使用此方法:

   public void setBaseShapesFilled(boolean flag) {
          this.baseShapesFilled = flag;
          fireChangeEvent();
    }

所以实际的代码是:

   XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) chart.getXYPlot().getRenderer();
   renderer.setBaseShapesFilled(false);
© www.soinside.com 2019 - 2024. All rights reserved.