2016-03-21 86 views
2

我有一個用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)); 

但只有新的形狀繪製,點拿不出輪廓:

enter image description here

回答

2

factory method引用實例XYLineAndShapeRenderer,所以看到你所需要的變革以調用setUseOutlinePaint()以及setSeriesOutlinePaint()和(可選)setSeriesOutlineStroke()

XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) xyPlot.getRenderer(); 
renderer.setUseOutlinePaint(true); 
renderer.setSeriesOutlinePaint(0, Color.black); 
renderer.setSeriesOutlineStroke(0, new BasicStroke(2)); 

一個完整的例子顯示爲here

+0

我收到此錯誤消息:「方法setUseOutlinePaint(boolean)未定義類型XYItemRenderer」。 –

+0

您需要如上所示投射渲染器。 – trashgod