Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- EC2 인스턴스
- EC2
- aws cloud
- aws iam
- 네트워크
- CentOS
- aws SAA-c03
- Ebs
- vmware
- GNS3
- vyos
- SAA
- aws saa
- aws cloud school
- IAM
- AWS 자격증
- NAT
- ALB
- HTTP
- AWS
- load balancer
- Troubleshooting
- ELB
- tftp
- SAA-C03
- Firewall
- aws cloud shcool 8
- docker
- linux
- FTP
Archives
- Today
- Total
나의 공부기록
Amcharts - dount Chart 가운데 퍼센트 띄우기 본문
1. amchart - dount chart 그래프 띄우기(퍼센트 띄우기)
am5.ready(function () {
//select option의 선택된 값을 가져와 test 변수에 집어넣음
var test = $("#selectOption option:selected").val();
console.log("test : " + test);
//thymeleaf로 값을 전달받아 data1List 변수에 넣음
data1List = [[${pJsonArr}]];
var root = am5.Root.new("ChartDiv1");
root.setThemes([
am5themes_Animated.new(root)
]);
var chart = root.container.children.push(am5percent.PieChart.new(root, {
layout: root.verticalLayout,
innerRadius: am5.percent(50)
}));
series2 = chart.series.push(am5percent.PieSeries.new(root, {
valueField: "count",
categoryField: "user",
alignLabels: false
}));
series2.labels.template.setAll({
textType: "circular",
centerX: 0,
centerY: 0
});
//controller에서 전달받은 값 data1List를 series2의 data에 세팅
series2.data.setAll(data1List);
legend = chart.children.push(am5.Legend.new(root, {
centerX: am5.percent(50),
x: am5.percent(50),
marginTop: 15,
marginBottom: 15,
}));
legend.data.setAll(series2.dataItems);
//도넛 그래프의 가운데에 퍼센트를 넣기 위해서는 label이 필요
//label에 띄울 text와 fontSize, label의 위치를 지정
label = series2.children.push(am5.Label.new(root, {
text: [[${percentage}]] + "%",
fontSize: 30,
centerX: am5.percent(50),
centerY: am5.percent(50)
}))
series2.appear(1000, 100);
});
2. amchart - dount chart 그래프 - data값 변경하기(그래프 다시 그리기 X)
// series2의 data값 다시 세팅
series2.data.setAll(JsonData);
//legned의 data값도 다시 세팅
legend.data.setAll(series2.dataItems);
var total = null;
for (var i = 0; i < JsonData.length; i++) {
total += JsonData[i]['count']
}
//percent 값을 계산
if (JsonData[0]['user'] != 'not Progress') {
percentage2 = 100;
} else {
percentage2 = (((total - JsonData[0]['count']) / total) * 100).toFixed(2);
}
// label의 text값을 다시 세팅
label.set("text", percentage2 + "%");
- series2.data.setAll()을 사용하면 그래프의 값을 변경하고자 할 때, 그래프를 다시 그리지 않고 값만 변경 가능
- 만약 amchart에서 계산한 percent값을 사용하려면, series.dataItems를 콘솔로 찍어 해당하는 값을 사용하면 된다.
console.log(series2.dataItems);
series2.dataItems를 콘솔로 찍은 모습
- percent값을 사용하려면 series2.dataItems[index].settings.valuePercentTotal 방식으로 가져다 사용 가능, 하지만 사용 가능한 chart가 존재하는 듯하다. → 본인은 해결하지 못하여 계산하여 사용함
'프로그래밍 > AmCharts' 카테고리의 다른 글
Amchart 데이터베이스 연동 + Ajax (0) | 2022.06.21 |
---|