2011-12-26 4 views
1

그래프를 표시하기 위해 jfree 차트를 사용하고 있습니다. 이제 그래프가 부드럽게 보이도록 XY 선 차트의 그래프 요소를 무작위로 선택하는 솔루션을 개발 중입니다. 문제는 임의의 요소를 원하지 않습니다. 실제 값과 동일한 두께를 얻으려면 실제로는 두께와 관련이 없습니다. 점 두께를 선택적으로 지정하는 방법이 있습니다. 현재 XYLineAndShapeRenderer를 사용하여 점 두께를 렌더링하고 있습니다.JFree 차트 선택 지점 두께

답변

4

getItemShapeVisible()을 무시하고 위조 점에 대해 false을 반환하도록 정렬 할 수 있습니다. XYZDataset 구현을 사용하여 데이터 모델에 결정에 필요한 추가 정보를 저장할 수 있습니다.

대신 렌더링 전에 데이터를 smoothing으로 간주하십시오. 이러한 필터를 사용하면 일반적으로 이 적어 포인트가 줄어 렌더링이 간단 해집니다.

두 경우 모두 데이터 변경을 혼란스럽게하거나 오도하는 것을 피하십시오. TextTitle 인 경우 here으로 표시하면 결과가 명확해질 수 있습니다.

부록은 : getItemShapeVisible()당신 무엇 seriesitem이 검토 중이다 알려줍니다. 기본 구현에서는 단순히 getSeriesShapesVisible()을 묻습니다. 여기 개요는 다음과 같습니다

private static class MyRenderer extends XYLineAndShapeRenderer { 

    @Override 
    public boolean getItemShapeVisible(int series, int item) { 
     System.out.println(series + ":" + item); 
     if (item % 2 == 0) return false; 
     else return super.getItemShapeVisible(series, item); 
    } 
} 

부록 : 당신의 응답을

XYPlot plot = chart.getXYPlot(); 
MyRenderer renderer = new MyRenderer(); 
plot.setRenderer(renderer); 
+0

감사합니다, 어쨌든 다 했지 특정 데이터 계열의 API의 인덱스 시도 할 것이다, 또는 그냥입니다 : 여기 당신이 그것을 설치하는 방법입니다 어떻게 구현해야합니까? – Madusudanan

+0

나는 위에서 정교했다. – trashgod

+0

시리즈에 관계없이 모든 다른 Shape를 건너 뛰도록 예제를 업데이트했습니다. – trashgod