Amchart5 Document 헷갈려서 나만의 언어?로 정리하기
<div class="data-block data" draggable="true">
<div class="header">
<h2>AmChart5 Sample - Pie chart </h2>
</div>
<div class="body">
<div class="grid-container" >
<div id="chartdiv3" style="width: 100%; height: 400px;"></div>
</div>
</div>
</div>
<script>
//ajax로 DB데이터 가져오는 파라미터
//svcId, returnData, errCd, msgTp, msgCd, msgText
function fn_renderPieChart(data){
var root3 = am5.Root.new("chartdiv3");
//chart 삭제 후 재선언
root3.dispose(); // 삭제
root3 = am5.Root.new("chartdiv3"); // 재선언
// Set themes
root3.setThemes([am5themes_Animated.new(root3)]);
// Create chart
var chart = root3.container.children.push( //인스턴스를 생성하는 기본 문법
am5percent.PieChart.new(root3, {
layout: root3.verticalHorizontal,
radius: am5.p100, //외부반경 공백에 범례, 시리즈표기에 따라 조절(기본 80)
innerRadius: am5.p50 //내부반경 (외부반경으로부터 상대적)
})
);
//시리즈 : 차트에 출력할 데이터값의 집합
var series = chart.series.push(am5percent.PieSeries.new(root3, {
name: "Series",
categoryField: "country", //항목
valueField: "sales", //항목에 따른 값
startAngle: -180, //시작각도 (-90 일때 원)
endAngle: 0 //끝 각도 (270 일때 원)
})
);
//테스트할 데이터 임시로 만들기
var test_data = [{
country: "France",
sales: 100000
}, {
country: "Spain",
sales: 160000
}, {
country: "United Kingdom",
sales: 80000
}];
//데이터는 data속성을 통해 시리즈에 직접 설정
series.data.setAll(test_data);
// 시리즈 간의 간격, 색상 설정
series.slices.template.setAll({
stroke: am5.color(0xffffff), //시리즈간의 공백을 흰색으로 표현
strokeWidth: 20 //공백 두께
});
//만약 2가지 데이터에 대해 표현을 하게되면
//series2 생성하여 각각 설정하면된다.
//범례와는 별개로 각 항목에 대한 레이블과 가리키는 막대
series.labels.template.set("visible", true); //true : 레이블 보임
series.ticks.template.set("visible", false); //false : 막대 안보임
// Add legend (범례 추가하기)
// https://www.amcharts.com/docs/v5/charts/xy-chart/legend-xy-series/
//범례를 추가하려면 Legend클래스의 인스턴스("핵심" 패키지의 일부)를 만들고
//차트에 푸시하고 해당 데이터를 설정하기
var legend = chart.children.push(
am5.Legend.new(root3, {
centerX: am5.p50, //수평 위치(가운데로부터 상대적위치)
centerY: am5.p100, //수직 위치(가운데로부터 상대적위치, 100이면 가장 아래
x: am5.p50, //수평위치 (절대적 위치)
y: am5.p80, //수직위치 (절대적 위치)
layout: root3.horizontalLayout, //각 항목을 수평으로 나열
nameField : "categoryX"
//만약 범례에 사용할 이름이 객체배열에 포함되어있다면 지정
})
);
//범례 데이터를 전달하는 방법 1
//가장 일반적이고 편리(DataItem 객체 배열 전달)
legend.data.setAll(series.dataItems);
// Make stuff animate on load
// https://www.amcharts.com/docs/v5/concepts/animations/
// 시리즈를 초기 애니메이션으로 보여주고 싶다면 appear()
series.appear();
// 차트 자체를 appear호출하는 것도 동일
chart.appear(1000, 100);
}
</script>
만약 series2를 설정하면 아래와 같이 중첩 파이차트가 생성된다.
728x90
반응형
'개발자 :-) > Javascript' 카테고리의 다른 글
Amchart5 - Stacked Column Chart (스택형 막대차트) (0) | 2022.10.13 |
---|---|
Amchart5 - radar chart / gauge chart (0) | 2022.10.12 |
[Javascript] let, const, var 사용하기 (fundamental - part.1) (0) | 2022.10.05 |
[Javascript] 데이터 타입 (fundamental - part.1) (0) | 2022.10.05 |
[Javascript] 자바스크립트 기초 - part.1 html js 분리/연결 (1) | 2022.10.04 |
댓글