Skip to content

Instantly share code, notes, and snippets.

@pikpokjeon
Created June 25, 2021 23:29
Show Gist options
  • Save pikpokjeon/99932bfdec05ff73e636cbd168845823 to your computer and use it in GitHub Desktop.
Save pikpokjeon/99932bfdec05ff73e636cbd168845823 to your computer and use it in GitHub Desktop.
SSH.js svg 라이브러리 - 1. 차트 헬퍼

2. 차트 정의 방식

  • 6월 18일

차트 생성 초기정의

const data = [
    {
        “date”: “10-01,
        "part": "A",
        “population”: 240,
        "price":10,
    },
    {
        “date”: “10-01,
        "part": "B",
        “population”: 60,
        "price":50,
    },
    {
        “date”: “10-02,
        "part": "B"
        “population”: 140,
        "price":20,
    },
]

 // HTML으로 사이즈 정하면 스크립트로 전체 svg사이즈 가져와 후에 옵션객체에 바인딩 해준다 size: {width: 1500, height: 750},

const chartOptions = {
    title: {
        text: '판매량',                                                     // 차트 제목
    },
    series: [
        {
            type: 'line || bar',                                            // 타입
            subType: bar 이면 'histogram' , line 이면 'curve', 'stack'      //기본값은 비워두기
            value: ‘population’,                                            // 데이터 값
            group: ‘date’,                                                  // 데이터 기준 값
        },
        {
            type: 'bar',
            subType: 'histogram' 
            value: 'price',
            group: ‘date’,
        },
    ],
    options: {
        event: {
            tooltip: [{
                target: 'population'
                format: (value) => ({ 인구: value + '명' }),            // 툴팁 커스터마이징
                ---
                format: ({population, price}) => ({population: '', price: ''}) 
                ---
                dots: {
                    display: true || false,                              // 전체
                    click: (dot) => {color: '', display: true || false} // 전체 점들 중에 위치한 하나의 점의 변화
                    hover: (dot) => {color: '', display: true || false}
                },
                message: {                                              // 툴팁 메세지를 띄울 것인지 예:) 인구 60 명
                    display: true || false,                             // 모든 타겟이 false인 경우 박스를 아예 숨김
                    ...  dots와 같음
                }],
            pointer: {
                format: ['vertical', 'horizontal']                      // 양쪽 다 있으면 십자 형태
                position: ['data','mouse']                              // 포인터 라인이 데이터위치에만 잡히는지
            }]
        ,
        range: {
            select: 'aside' || 'border' || 'area'                       // 차트 선택 구간 한쪽, 경계 양쪽, 구역범위
        }
        },
        responsive: true,
        legend: true,
        infarctSize: 'absolute' || 'relative' ,                         // 절대값/ 상대값 수치 표현
        theme : {
            mode : 'dark' || 'light',
            name: 'name' 
        }
        
    },
}

Chart.init(data, chartOptions)

3. 차트 생성에 필요한 것들은 무엇이 있을까?

  • 6월 26일 회의 ( 설계와 역할분담)

1. 차트 옵션에서 함수가 필요한 부분을 나눈다

  • 차트 생성에 필요한 요소들
  • 차트에 필요한 이벤트
  • x/y 축 좌표 계산하는 함수

2. 차트 생성에 필요한 요소들을 분류한다

https://developer.mozilla.org/ko/docs/Web/SVG/Element

  1. 한번만 렌더링 되는지/ 지속적으로 특정 조건하에 렌더링 되는지
  2. 한 요소가 여러개 생성 되어야 하는지
  • 컨테이너
  • 필터
  • 그래픽/ 모양 : 원, 사각형, 선, 패스, 텍스트
  • 그라디언트
  • 스크립트 필터 등등 ..

3. 요소들을 생성하는 함수

  • 초기 속성이 적용된 요소 생성
  • 요소들에 속성을 동적으로 적용
  • 요소를 반복적으로 생성
  • 요소를 동적으로 생성( 업데이트)
  • 요소들을 결합하여, 형태를 구성하기 위한 함수 (그라데이션/ 배경자르기)

4. 요소들로 트리를 구성하고 렌더링하는 함수

  • 요소들로 만들 수 있는 형태 트리 구조로 만들고
  • 사용자 입력값에 따른 전체 비율과 좌표값 연산
  • 필요한 부분에 해당 트리를 확장 가능하도록
  • 완성된 트리를 렌더링 (차트 init)

1. 차트에 필요한 요소

  • 6월 6일

수정중

기능과 특징

SVG와 HTML DOM 요소를 쉽게 생성하고 속성을 변형하여 화면에 적용할 수 있는 모듈로서 데이터 시각화를 편리하게 구성하도록 한다.


collaborators

팀원 아이디
전예진 pikpokjeon
Aiden-leee
김진희 dev-jinheekim

차트 프로젝트

토픽 규칙 레퍼런스
1. 스터디 방법 - 각자 맡은 토픽에 따른 설명과, 부가 코트를 작성합니다.
- 다음 회의까지 각 대분류 토픽의 폴더에 마크다운으로 작성한 결과물을 제출합니다.
파일명: [토픽이름]---[이름]
위치: /agenda/chart/파일명.md
토픽 : 차트 초기정의
설명: ...
코드: 1. ... 2. ...
2. 토픽 설명 - 비교 가능한 코드가 있다면 어떤 차이점이 있는지 서술합니다
- 이해를 돕기위한 코드조각을 첨부합니다
3. 회의 방법 - 매주 한번 온라인/ 미팅을 통해 각자 준비한 코드를 화면공유를 통해 리뷰하는 시간을 갖습니다.
- 유닛 테스트 툴을 사용하셔도 좋습니다. 함수가 작동하는 것을 보여주세요.
플랫폼: gather.town
방식: 화면공유로 정리한 내용을 발표하고, JS 런타임 환경에서 함수가 작동하는 것을 시연합니다.
4. 마지막 단계 - 회의 마지막 단계에, 자신이 가장 자신있는 토픽을 선택합니다.
svg 요소 생성 함수 코드짜기..

List to study

  • 시작 날짜
  • 완료 시 체크

1. 차트에 필요한 요소

  • 6월 6일

2. 차트 정의 방식

  • 6월 18일

3. 차트 생성에 필요한 것들은 무엇이 있을까?

  • 6월 26일 회의 ( 설계와 역할분담)

Commit Convention

      [ keyword ] : 커밋 내용 (파일이름)
      keywords : 
                  docs : 문서화,
                  style : 스타일 관련,
                  build : 빌드와 배포,
                  fix: 에러 수정,
                  feature: 기능 추가,
                  refactor: 코드 개선
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment