绘制点而不是线?JFreeChart PolarChart

Spe*_*eed 6 plot jfreechart

目前,PolarChart将所有坐标与创建多边形的线连接起来.我只是想用点来绘制每个点,而不是将它们连接在一起.这可能吗?

我曾尝试使用translateValueThetaRadiusToJava2D()和Graphics2D绘制圆圈,但它非常笨重和做作.

欢迎任何建议!

Spe*_*eed 6

因此,DefaultPolarItemRenderer获取所有极点,将极点转换为常规Java2D坐标,Polygon使用这些点然后绘制它.这是我如何绘制点而不是多边形:

public class MyDefaultPolarItemRenderer extends DefaultPolarItemRenderer {

    @Override
    public void drawSeries(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, PlotRenderingInfo info, PolarPlot plot, XYDataset dataset, int seriesIndex) {


        int numPoints = dataset.getItemCount(seriesIndex);
        for (int i = 0; i < numPoints; i++) {

            double theta = dataset.getXValue(seriesIndex, i);
            double radius = dataset.getYValue(seriesIndex, i);
            Point p = plot.translateValueThetaRadiusToJava2D(theta, radius,
                    dataArea);
            Ellipse2D el = new Ellipse2D.Double(p.x, p.y, 5, 5);
            g2.fill(el);
            g2.draw(el);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在其他地方实例化这个类:

    MyDefaultPolarItemRenderer dpir = new MyDefaultPolarItemRenderer();
    dpir.setPlot(plot);
    plot.setRenderer(dpir);
Run Code Online (Sandbox Code Playgroud)