2012-06-03 2 views
1

그래프 원형 차트에 문제가 있습니다. 내가 사용하고있는 데이터는 동적이며 경우에 따라서는 하나의 값만 반환됩니다. 즉, 전체 차트가 채워지는 것은 유일한 조각이기 때문입니다. 문제는 오직 하나의 값이있을 때, 내 색상 지정을 무시한다는 것입니다.그래프의 원형 차트 그래프의 값이 1 개인 경우 항상 파란색입니다. (한 조각으로 파이의 색상을 설정하는 방법)

예를 들면 : 다음은이 개 값으로 라파엘 원형 차트의 창조이며, 각 슬라이스는 "색상"절에 지정된 적절한 색상이 있습니다이 잘 작동

var r = Raphael("holder"); 
r.piechart(160, 136, 120, [100,200],{colors: ["#000","#cecece"]}); 

을, 나는 두 가지를 얻을 수 적절한 크기의 슬라이스, 하나의 검정색 및 하나의 회색.

그러나 아래 예제에서는 내 색 설정에 관계없이 항상 파란색으로 채워진 하나의 전체 원형을 만듭니다. 이

내가 뭔가 잘못하고 있는가 "색상"으로 설정하거나이 버그가 될 때이 상황에서

var r = Raphael("holder"); 
r.piechart(160, 136, 120, [100],{colors: ["#000"]}); 

, 정말, 전체 파이가 검은 색 것을해야합니까?

답변

2

INMO의 파이가 컬러가 하드 코딩 된 경우에만 한 조각을 가지고 버그가 원인 ... 여기

입니다 라인 (47) 이후의 g.pie.js

다음 행 (일본어 JS 파일에서 라인 48)

series.push(paper.circle(cx, cy, r).attr({ fill: chartinst.colors[0].... 
,745에서 다음이

var my_color = chartinst.colors[0]; 
if(opts.colors !== undefined){ 
    my_color = opts.colors[0]; 
} 

추가

는 대체 chartinst.colors[0]와 편집 g.pie.js없이

if (len == 1) { 
     var my_color = chartinst.colors[0]; 
     if(opts.colors !== undefined){ 
      my_color = opts.colors[0]; 
     } 
     series.push(paper.circle(cx, cy, r).attr({ fill: my_color, .... 
0

당신은 이미이 질문이 하루 였기 때문에 아마도 이것을 알아 냈을 것입니다 ...하지만 당신은 라파엘을 특수한 케이스의 데이터 세트로 흑색 단위로 렌더링하여 극소의 두 번째 값을 추가 할 수 있습니다 . 그래서 ... 데이터 포인트 배열 데이터를 제공

if (data.length == 1) 
    data.push(0.000001); 

canvas.piechart(250, 250, 120, data, {colors: ["#000", "#CECECE", "#F88" /*, ... */ ] }); 

초소형 은색은 여전히 ​​180도 위치에서 단일 픽셀 선으로 렌더링 될 것입니다,하지만 당신은 꾸며 낼 아마 수있는 색상으로 재생하여 팔레트.

네, 트릭입니다. gRaphael의 행동이 잘못 구현 된 것만 큼 (단일 요소 데이터 세트가 다른 모든 경우와 마찬가지로 경로 대신에 원을 생성하기 때문에 분명히 특별한 경우) 버그라고 생각합니다. 나는 (내가 한 모든 존재하면 colors 인수를 사용하는 것입니다 ...) 그것을 해결하는 방법을

0

쉬운 방법은 나를 위해 그것을이다 my_color

var r = Raphael('st_diagram'); 

r.piechart(140, 140, 137, 100, 0.0001],{ 

     colors:['#9ae013','#9ae013'], 
     strokewidth: 0 
    });