// XYChart 생성
		XYChart = am4core.create("XYChart", am4charts.XYChart);

		// 데이터 랜덤값
	    var numA = Math.floor(Math.random() * 30) + 300;
	    var numB = Math.floor(Math.random() * 30) + 200;
	    var numC = Math.floor(Math.random() * 30) + 200;
	    var numD = Math.floor(Math.random() * 30) + 100;
	    var numE = Math.floor(Math.random() * 30) + 250;
	    var numF = Math.floor(Math.random() * 30) + 180;  
	    var numG = Math.floor(Math.random() * 30) + 120;
	    var numH = Math.floor(Math.random() * 30) + 50;
	    
	    
		// 차트 데이터 만들기
		XYChart.data = [{
			id: 1,
		    "type": "A",
		    "test1": numA,
		    "test2": numB,
		    "test3": numA - 30
		}, {
			id: 2,
		    "type": "B",
		    "test1": numC,
		    "test2": numD,
		    "test3": numA - 30
		}, {
			id: 3,
		    "type": "C",
		    "test1": numE,
		    "test2": numF,
		    "test3": numA - 30
		}, {
			id: 4,
		    "type": "D",
		    "test1": numG,
		    "test2": numH,
		    "test3": numA - 30
		}, {
			id: 5,
		    "type": "E",
		    "test1": numA,
		    "test2": numD,
		    "test3": numA - 30
		}];

		// test2 최솟값 최댓값 구하기
		var max = XYChart.data.reduce((prev, cur)=>{
		    return prev.test2 > cur.test2 ? prev : cur;
		});
		
		var min = XYChart.data.reduce((prev, cur)=>{
		    return prev.test2 > cur.test2 ? cur : prev;
		});
	
		// X축 생성 및 설정
		var categoryAxis = XYChart.xAxes.push(new am4charts.CategoryAxis());
		categoryAxis.dataFields.category = "type";
		categoryAxis.fontSize = "18px";
		categoryAxis.fontWeight = "bold";  
		categoryAxis.renderer.minGridDistance = 30;
		

		// 1번째 y축 생성 및 설정
		var valueAxis = XYChart.yAxes.push(new am4charts.ValueAxis());
		valueAxis.title.text = "test1";
		valueAxis.title.fontWeight = 800; 
		valueAxis.fontSize = "18px";
		valueAxis.fontWeight = "bold";    
		
		// 2번째 y축 생성 및 설정	
		var valueAxisRight = XYChart.yAxes.push(new am4charts.ValueAxis());
		// y축 범례 관련
		valueAxisRight.title.text = "test2"; // 범례 제목
		valueAxisRight.title.fontWeight = 800; // 범례 글자 굵기
		
		// y축 라벨 관련
		valueAxisRight.fontSize = "15px"; // 글자 크기
		valueAxisRight.fontWeight = "bold"; // 글자 굵기
		valueAxisRight.min = min.test2; // 라벨 최솟값
		valueAxisRight.max = max.test2; // 라벨 최댓값
		
		// y축 위치 관련
		valueAxisRight.renderer.opposite = true; // y축 오른쪽으로 설정
		valueAxisRight.renderer.inversed = true; // y축 데이터 위아래 뒤집기(false : 아래, true : 위)
		//valueAxisRight.renderer.inside=true; // y축 라벨 값 차트 안으로 넣기
		valueAxisRight.renderer.minLabelPosition = 0.01; // 최솟값 라벨 지우기
		valueAxisRight.renderer.line.strokeOpacity = 1; // y축 획(선) 투명도(0:투명, 1:불투명)
		valueAxisRight.renderer.line.strokeWidth = 2; // y축 획(선) 넓이
		valueAxisRight.renderer.labels.template.fill = "black"; // 축 라벨 색깔 지정하기
		valueAxisRight.renderer.line.stroke = "red"; // 축 획(선) 색깔 지정하기

		// 차트 안에 마이스를 커서했을 경우 tooltipText 및 데이터 값 나오게해줌
		XYChart.cursor = new am4charts.XYCursor();
	
		// Create series
		var series = XYChart.series.push(new am4charts.ColumnSeries());   
		series.dataFields.valueY = "test1";
		series.dataFields.categoryX = "type";
		series.clustered = false;
		series.tooltipText = "{categoryX} -> {valueY}[/]";
	
		var series2 = XYChart.series.push(new am4charts.ColumnSeries());
		series2.dataFields.valueY = "test2"; 
		series2.dataFields.categoryX = "type";  
		series2.clustered = false;
		series2.columns.template.width = am4core.percent(30);
		series2.tooltipText = "{categoryX} -> {valueY}[/]";

'amCharts4' 카테고리의 다른 글

[amCharts4] hiddenState  (0) 2023.04.05
[amCharts4] pieChart  (0) 2023.04.05
[amCharts4] Legend  (0) 2023.04.05
[amCharts4]ExportMenu  (0) 2023.04.05

+ Recent posts