2016-06-08 2 views
0

몇 가지 플로우 차트 (세로 차트와 파이 차트)를 만들었지 만 문제가 있습니다. 거의 모든 페이지를 차지하고 있기 때문에 차트를 최소화하고 싶습니다. 나는 값이 동일 할 플로 차트를 최소화하는 방법

<form action="listacumparaturi" method="get"> 
    <canvas width="2200" height="2200" id="myCanvas"></canvas> 

    <script> 
    var x = "${sumC}"; 
    var y = "${sumG}"; 
    var z = "${sumP}"; 
    var w = "${sumCa}"; 
    total = "${sumT}"; 
    var vertical = { 
    Calorii: x, 
    Grasimi: y, 
    Proteine: z, 
    Carbohidrati: w 
    }; 
    var data = Object.keys(vertical); 
    var c = document.getElementById("myCanvas"); 
    var ctx = c.getContext("2d"); 
    total = "${sumT}"; 
    color = ['orange', 'red', 'blue', 'green', 'black']; 
    start = 0; 
    for (var i = 0; i < data.length; i++) { 
    ctx.fillStyle = color[i]; 
    ctx.fillRect((i * 60) + 50, x, 10, -(vertical[data[i]])); 
    ctx.font = "13px Arial"; 
    ctx.fillText(data[i], (i * 60) + 51, x * 1.015); 
    ctx.fillText((1 * i), 20, ((32 * -i) + 920)); 
    ctx.beginPath(); 
    ctx.moveTo(600, 150); 
    ctx.arc(600, 150, 150, start, start + 
     (Math.PI * 2 * (vertical[data[i]]/total)), false); 
    ctx.lineTo(600, 150); 
    ctx.fillStyle = color[i]; 
    ctx.fill(); 
    start += Math.PI * 2 * (vertical[data[i]]/total); 
    } 
    </script> 
</form> 

사람이 내가이 플로우 차트를 최소화 할 수있는 방법을 알고 있나요하지만 사진을 최소화 할 : 여기

내가 한 일이다.

다음

당신이 미리 확인할 수 있습니다 http://codepen.io/nagasai/pen/Meayrb

감사합니다!

수직 막대의 높이를 계산하는 동안 난 그냥 코드 펜 URL ​​..Added 총 규모를 업데이트

답변

0

- Y-axxis 바의 높이에 http://codepen.io/nagasai/pen/Meayrb

   ctx.fillRect((i * 60) + 50, 300, 10,(-(vertical[data[i]])*100)/total); 
       ctx.font = "9px Arial"; 
       ctx.fillText(data[i], (i * 60) + 51, 742); 
       ctx.fillText((700 * i), 30, (((70) * -i) + 300)); 

그리고 규모는 지금 동적이며 자동을 기준으로 조정하여 입력. 희망이 당신에게 유용합니다

+0

네가 도움이되는 또 다른 문제는 왼쪽에서 숫자의 스케일은 수직 차트와 일치하지 않습니다. 예를 들어 : 1080과 파란색 라인은 1080 이상입니다 – Bogdan

+0

아니요 .. 제가 값으로 조정하고 있다고 생각합니다. 테스트를 위해 1400으로 첫 번째 값을 변경했습니다. codepen URL을 찾으십시오. http://codepen.io/nagasai/pen/Meayrb –

+0

예, 보았습니다. 나쁜, :(내가 원하는 다른 것은 1400 값만 표시하는 것입니다. 2100 등의 다른 값을 원하지 않습니다. 좀 봐 주시겠습니까? – Bogdan

관련 문제