2011-07-06 198 views
0

我使用Jfreechart繪製x-y軸我想在這個x-y軸上繪製一個矩形和一個圓。你知道它怎麼可能?有沒有更好的方法(而不是jfreechart)繪製x-y軸及其形狀?在jfreechart中繪製圖形

+0

您的意思是突出顯示圖表上的某些內容嗎? – trashgod

+0

我想在圖表上繪製一個圓形和一個矩形。我應該怎麼做? – SunyGirl

+0

你是否想要構建一個數據集,其中的點在二維中形成一個圓和一個正方形? – trashgod

回答

0

我使用註釋功能將圓形或其他項目繪製到XY圖表圖表​​上。例如,添加一個圓使用「addAnnotation(XYShapeAnnotation(new Ellipse2D.Double(...)))」。以下是一個示例方法:

public void markChartAt2(float fromX, float fromY, float toX, float toY, markType markerTyp, Color lineColor, String toolTip) { 
    XYLineAnnotation lineAnnotation; 
    XYShapeAnnotation shapeAnnotation; 
    if (lineColor == null) 
     lineColor = Color.black; 
    maxY = yAxis.getUpperBound(); 
    minY = yAxis.getLowerBound(); 
    yFactor = (maxY - minY) * .005d; 
    maxX = xAxis.getUpperBound(); 
    minX = xAxis.getLowerBound(); 
    xFactor = (maxX - minX) * .0005d;  
    switch (markerTyp){ 
    case CIRCLE: 
     shapeAnnotation = new XYShapeAnnotation(
       new Ellipse2D.Double(fromX - xFactor, fromY - yFactor, xFactor+xFactor, yFactor+yFactor), 
       markerLineWidth, lineColor) ; 
     shapeAnnotation.setToolTipText(toolTip); 
     priceXYPlot.addAnnotation(shapeAnnotation); 
     break; 
    case SQUARE: 
     shapeAnnotation = new XYShapeAnnotation(
       new Rectangle2D.Double(fromX - xFactor, fromY - yFactor, xFactor+xFactor, yFactor+yFactor), 
       markerLineWidth, lineColor); 
     shapeAnnotation.setToolTipText(toolTip); 
     priceXYPlot.addAnnotation(shapeAnnotation); 
     break; 
    } 
} 
+0

您應該向您的代碼示例添加解釋,說明它如何幫助解決OP的問題。 – moggi

+0

更新了我的答案,以解釋如何通過addAnnotation()方法繪製矩形或圓形 –