스프링링링
611
2021-06-22 11:39:23
8
307

c3.js 차트 데이터값 3개 받아오기



위에 차트 처럼 칼럼 데이터값이 3개가 있고 이걸 넣어주고 싶은데


console log 찍어보니까 이렇게 데이터를 잘 받아와요

근데 3개 데이터를 나타내려면 칼럼값의 맨 앞에가 'data1' 이런식으로 다 다르게 들어가야 3개가 들어가잖아요



이게 넥사크로랑 이클립스랑 연동해서 가져오는거라 맨 앞이 'value'로 다 똑같아서 그런지

데이터가 1개밖에 표출이 안되는데 

3개 다 표현해주려면 어떻게 바꾸는 방법이 있을까요?


function drawScorechart(data){
 console.log(data)
var chart = c3.generate({
	bindto: "#chart",
    data: {
        x: 'upCd',
        columns: data
  			  }
});
	}

이클립스 코드입니다. (c3.js)



0
  • 답변 8

  • 초보킴
    300
    2021-06-22 11:56:58 작성 2021-06-22 11:58:25 수정됨

    안녕하세여 저도 초보인데 제 의견을 말씀드리면


    drawScorechart(data) << 여기 들어가는 DATA 가 3개중에 한개 data?


    3개의 데이터를 하나로 가공해주면 3개 다 나올것 같습니다.

    upCd가 항상 같은 갯수 같은 값을 가져온다는 가정하에

    [0]: ['upCd', '49403' ... ]

    [1]: ['value', '20' ..]

    [2]: ['value2', '20' ....]

    ....

    이런식으로 하나로 합쳐서 쓰시면 3개가 전부 그래프에 출력 될 것 같습니다.


  • 스프링링링
    611
    2021-06-22 12:03:04 작성 2021-06-22 12:03:38 수정됨

    초보킴 

    안녕하세요! 저도 그 방법이 궁금해서요 ㅠㅠ

    저 3개 데이터가 datetime 마다 다른 데이터라서 for문으로 upCd 개수 (8)개씩 돌려서 3가지로 받고 있는데

    어떻게 로직을 짜야할지 어렵네유 ... 답변 감사합니다 !


    	var score = ['value',];
    	for(var i=0; i < 8; i++)
    	{
    		score.push(this.ds_00.getColumn(i, "SCORE"))
    	}


  • 초보킴
    300
    2021-06-22 13:07:37 작성 2021-06-22 13:08:08 수정됨

     스프링링링


    도움이 되실지 모르겠습니다.

    무식한방법밖에 생각이 안나지만

    data1['value2'] = (data2[1]);

    data1['value3'] = (data3[1]);

    이런식으로만 넣어도 되지않을까요 ?

  • daywalker
    1k
    2021-06-22 15:37:55
    x: 'upCd', 이걸빼서야될듯
  • 초보킴
    300
    2021-06-22 15:41:05
    data: {
        columns: [
          ['data1', 30, 200, 100, 400, 150, 250],
          ['data2', 50, 20, 10, 40, 15, 25]
        ]
      }

    가이드를 보니 이런식으로 넣었던데

    아래와 같이 해도 괜찮을것 같습니다.

    data: {
        columns: [
          Array[1], Array2[1], Array[1]
        ]
      }
  • 스프링링링
    611
    2021-06-22 15:42:30

    daywalker 

    그거는 x축 설정해주는거라서 상관없지않나요 ?_?

    한번 빼보고 해볼게요!

  • 스프링링링
    611
    2021-06-22 15:48:29

    초보킴 

    최대한 그렇게 안해보려고 하고있는데 잘 안되네요 ㅠㅠㅠ 이게 지금은 데이터가 3개라 가능한데 엄청 많아지면 어떻게 해야할지 막막해서 ,,, 친절한 답변 너무너무 감사드립니다 !!

  • 초보킴
    300
    2021-06-22 15:54:17 작성 2021-06-22 16:00:51 수정됨

     스프링링링


    무조건 3개의 배열 데이터만 오는게 아니라 동적으로 바뀐다는 말씀이신가요?


    그렇다면 각 1개의 배열데이터를 조회 해  올 때 전역 배열변수를 하나 만들어서 PUSH 한 후


    전역 배열변수만 columns 안에 넣어주면 해결될 것 같습니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.