在散点图中更改系列轮廓描边和绘画
Changing series outline stroke and paint in scatter plot
我有一个用 ChartFactory.createScatterPlot
创建的散点图。我想在每个点周围画一个轮廓,以便在具有聚集点的区域中获得更好的视觉反馈。我正在这样尝试:
Shape cross = new Ellipse2D.Double(0,0,5,5);
XYPlot xyPlot = (XYPlot) jfreechart.getPlot();
xyPlot.setDomainCrosshairVisible(true);
xyPlot.setRangeCrosshairVisible(true)
XYItemRenderer renderer = xyPlot.getRenderer();
renderer.setSeriesShape(0, cross);
renderer.setSeriesPaint(0, Color.red);
renderer.setSeriesOutlinePaint(0, Color.black);
renderer.setSeriesOutlineStroke(0, new BasicStroke(2));
renderer.setSeriesStroke(0, new BasicStroke(1));
但是只绘制了新的形状,点没有轮廓:
factory method cited instantiates XYLineAndShapeRenderer
, so to see the change you need to invoke setUseOutlinePaint()
,以及setSeriesOutlinePaint()
和(可选)setSeriesOutlineStroke()
。
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) xyPlot.getRenderer();
renderer.setUseOutlinePaint(true);
renderer.setSeriesOutlinePaint(0, Color.black);
renderer.setSeriesOutlineStroke(0, new BasicStroke(2));
已显示完整示例 here。
我有一个用 ChartFactory.createScatterPlot
创建的散点图。我想在每个点周围画一个轮廓,以便在具有聚集点的区域中获得更好的视觉反馈。我正在这样尝试:
Shape cross = new Ellipse2D.Double(0,0,5,5);
XYPlot xyPlot = (XYPlot) jfreechart.getPlot();
xyPlot.setDomainCrosshairVisible(true);
xyPlot.setRangeCrosshairVisible(true)
XYItemRenderer renderer = xyPlot.getRenderer();
renderer.setSeriesShape(0, cross);
renderer.setSeriesPaint(0, Color.red);
renderer.setSeriesOutlinePaint(0, Color.black);
renderer.setSeriesOutlineStroke(0, new BasicStroke(2));
renderer.setSeriesStroke(0, new BasicStroke(1));
但是只绘制了新的形状,点没有轮廓:
factory method cited instantiates XYLineAndShapeRenderer
, so to see the change you need to invoke setUseOutlinePaint()
,以及setSeriesOutlinePaint()
和(可选)setSeriesOutlineStroke()
。
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) xyPlot.getRenderer();
renderer.setUseOutlinePaint(true);
renderer.setSeriesOutlinePaint(0, Color.black);
renderer.setSeriesOutlineStroke(0, new BasicStroke(2));
已显示完整示例 here。