2010-06-09 2 views
2

누적 막 대형 차트의 각 막대에 고유 한 색을 설정해야합니다. 한 막대에서 볼 수있는 색상이 무엇이든지 다른 막대 또는 다른 막대에서 반복해서는 안됩니다.ireport에서 스택 막대 차트의 막대에 다른 색상을 설정하는 방법은 무엇입니까?

예 : 보고서에 5 개의 막대가 있습니다. 각 막대에는 3 가지 스택이 있습니다. 첫 번째 막대와 스택에 빨간색 관련 색상을 적용하고 싶습니다. 두 번째 막대는 파란색과 관련된 색상을 가져야합니다. 첨부 파일로 표시됩니다. 이미지는 우리가 원하는 아주 기본적인 요구 사항을 보여줍니다. 그냥 일반 석사 페인트를 사용하여 만들었습니다. Stacked Bar MS Paint Image

답변

5

당신이 원하는 색상을 반환 StackedBarRenderer()getItemPaint() 방법을 대체 할 수 있습니다. getHSBColor()을 사용하여 주어진 색상에 대한 밝기 또는 채도를 변경하여 관련 색상을 구성 할 수 있습니다.

부록 : 아래의 예는 각 항목의 행, 열 및 색상을 인쇄합니다. 결과를 사용자 정의 색상의 지침으로 사용할 수 있습니다. 샘플 데이터 세트는 BarChartDemo1을 참조하십시오.

plot.setRenderer(new MySBRenderer()); 
... 
private static class MySBRenderer extends StackedBarRenderer { 

    @Override 
    public Paint getItemPaint(int row, int col) { 
     System.out.println(row + " " + col + " " + super.getItemPaint(row, col)); 
     return super.getItemPaint(row, col); 
    } 
} 
+0

답장을 보내 주셔서 감사합니다. 요구 사항을 제대로 전달하지 못해서 미안합니다. 여기에 더 많은 입력이 있습니다 : 1. 스택 바에는 3 개의 막대 만 있어야합니다. 각 막대에는 3 개의 스택이 있습니다. 2. 모든 스택 색상은 고유해야합니다. 각 막대 및 스택은 고유 한 매개 변수를 나타냅니다. 스택 막대 차트의 문제는 막대의 각 스택이 모든 막대에서 동일하다는 것입니다. 각 요구 사항에 따라 각 스택과 각 막대가 다릅니다. 첫 번째 막대의 첫 번째 스택에 대한 매개 변수는 두 번째 및 세 번째 막대의 첫 번째 스택의 매개 변수와 다릅니다. –

+0

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

+0

우수. 그것은 효과가 있었다. 고맙습니다. –