canvas
요소에 pie-chart
모양을 만들려고하는데,이 기능 자체를 찾지 못합니다.
쉬운 방법이 있습니까 pie chart like below image
html5 캔버스를 사용하여 다중 레벨 파이 차트를 그리는 방법은 무엇입니까?
0
A
답변
1
는 여기에 리콜 기능을 사용하여 호를 그립니다 당신을위한 시작 예제 :
은 시작 & 종료 아크 각도Radians
을 것을 기억하십시오. 이 같은 라디안으로 변환 할 수 있습니다 :
radians = degrees * Math.PI/180
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var cw=canvas.width;
var ch=canvas.height;
ctx.lineWidth = 2;
ctx.font = '14px verdana';
var PI2 = Math.PI * 2;
var myColor = ["Green", "Red", "Blue"];
var myData = [30, 15, 38, 22, 30, 20, 10];
var cx = 150;
var cy = 150;
var radius = 100;
ctx.globalAlpha=0.50;
pieChart(myData, myColor);
ctx.globalAlpha=1.00;
function pieChart(data, colors){
// calc data total
var total = 0;
for (var i = 0; i < data.length; i++) {
total += data[i];
}
// calc sweep angles for each piece of pie
var sweeps = []
for (var i = 0; i < data.length; i++) {
sweeps.push(data[i]/total * PI2);
}
// draw outer pie
var accumAngle = 0;
for (var i = 0; i < sweeps.length; i++) {
var f=randomColor();
drawWedge(radius, accumAngle, accumAngle + sweeps[i], f, data[i]);
accumAngle += sweeps[i];
}
// draw inner percent-complete wedges
var accumAngle = 0;
for (var i = 0; i < sweeps.length; i++) {
var r=radius*(Math.random()*70+20)/100;
var f=randomColor();
drawWedge(r,accumAngle, accumAngle + sweeps[i], f, data[i]);
accumAngle += sweeps[i];
}
}
function drawWedge(radius, startAngle, endAngle, fill, label) {
// draw the wedge
ctx.beginPath();
ctx.moveTo(cx, cy);
ctx.arc(cx, cy, radius, startAngle, endAngle, false);
ctx.closePath();
ctx.fillStyle = fill;
ctx.strokeStyle = 'white';
ctx.fill();
ctx.stroke();
}
function randomColor(){
return('#'+(Math.floor(Math.random() * 0x1000000) + 0x1000000).toString(16).substr(1));
}
body{ background-color: ivory; }
#canvas{border:1px solid red; }
<canvas id="canvas" width=512 height=512></canvas>
+1
감사 마크, 내 문제가 해결되었습니다. –
+0
안녕하세요. 각 호의 호버에 라벨을 추가하는 데 도움을 줄 수 있습니까? –
+0
안녕하세요, 가족이 시간이 부족하여 커서를 가리 키기위한 또 다른 질문을 게시 할 수 있습니다. – markE
관련 문제
- 1. 차트를 그리는 방법은 무엇입니까?
- 2. Android에서 캔버스를 사용하여 차트를 디자인하는 방법은 무엇입니까?
- 3. 캔버스를 사용하여 둥근 버튼을 그리는 방법은 무엇입니까?
- 4. 캔버스를 사용하여 이미지 스프라이트를 그리는 방법은 무엇입니까?
- 5. mousedown에서 캔버스를 그리는 방법은 무엇입니까?
- 6. C#을 사용하여 차트를 그리는 방법은 무엇입니까?
- 7. html5 캔버스를 사용하여 중지/재생하는 방법은 무엇입니까?
- 8. coreplot을 이용하여 아래 그림과 같이 파이 차트를 그리는 방법은?
- 9. 캔버스를 사용하여 선을 그리는 방법
- 10. CGContext를 사용하여 그리는 방법은 무엇입니까?
- 11. MSChart를 사용하여 파이 - 파이 차트를 만들려면 어떻게해야합니까?
- 12. 다른 플롯의 주어진 위치에 원형 차트를 그리는 방법은 무엇입니까?
- 13. TcxImage Canvas에 Direct2D 캔버스를 그리는 방법은 무엇입니까?
- 14. 통계 차트를 그리는 가장 좋은 방법은 무엇입니까?
- 15. 원형 차트를 레일에 그리는 방법은 무엇입니까?
- 16. iPhone에서 파이 차트를 만드는 방법은 무엇입니까?
- 17. javascript/jquery를 사용하여 클릭 이벤트에서만 Google 파이 차트를 그리는 방법은 무엇입니까?
- 18. html5 : 캔버스를 이미지에 복사하고 뒤로
- 19. 심장 박동을 위해 차트를 그리는 방법은 무엇입니까?
- 20. angularjs에서 플롯 차트를 다시 그리는 방법은 무엇입니까?
- 21. Android에서 원형 차트를 수동으로 그리는 방법은 무엇입니까?
- 22. OFC Python으로 차트를 그리는 방법은 무엇입니까?
- 23. 메시지 시퀀스 차트를 그리는 방법은 무엇입니까?
- 24. Google App Engine에서 차트를 그리는 방법은 무엇입니까?
- 25. 캔버스에 캔버스를 그리는 방법
- 26. HTML5 다중 캔버스를 결합하고 실시간으로 업데이트합니다.
- 27. 캔버스를 사용하여 도넛 형 차트를 그리는 방법은 무엇입니까? 나는 캔버스와 자바 스크립트를 사용하여이 작업을 수행 할 수있는 방법, 캔버스를 사용하여 도넛 차트를 그리려면
- 28. gwt-visualization api를 사용하여 GWT에서 파이 차트를 만드는 방법은 무엇입니까?
- 29. 파이썬 3.4에서 dict_values를 사용하여 파이 차트를 생성하는 방법은 무엇입니까?
- 30. vaadin에서 invient-chart를 사용하여 간단한 파이 차트를 만드는 방법은 무엇입니까?
쉽게와 반경 변화에 쐐기를 그릴 수 있습니다 : ('context.beginPath); context.moveTo (centerX, centerY); context.arc (centerX, centerY, radius, startRadianAngle, endRadianAngle); context.closePath(); context.fillStyle = 'yourChosenColor'; context.fill(); context.strokeStyle = 'white'; context.stroke()' – markE
안녕하세요, 답장을 보내 주셔서 감사합니다. 제안한 내용을 시도했습니다. 원형 위와 같은 호의 진행 상태를 보여주기 위해 다른 호를 그리는 방법을 알려주시겠습니까? –
나는 당신이 시작할 수있는 간단한 예제를 게시했습니다. – markE