stz-chart-maker Documentation - v2.3.7
    Preparing search index...

    Class BubbleChart

    Hierarchy (View Summary)

    Implements

    Index

    Accessors

    Constructors

    Methods

    Properties

    Accessors

    • get chartId(): string

      Returns string

    • set chartId(value: string): void

      Parameters

      • value: string

      Returns void

    Constructors

    Methods

    • Parameters

      • OptionaldatasetIndexOrData: any

        데이터셋 인덱스(숫자) 또는 추가할 데이터. 숫자가 아니면 데이터로 간주하고 마지막 데이터셋에 추가됩니다.

      • Optionaldata: any

        추가할 데이터 (단일 객체 또는 배열). 첫 번째 인자가 데이터인 경우 생략.

      Returns this

      데이터셋에 데이터 포인트를 추가합니다. time series인 경우 자동으로 시간 순서대로 정렬됩니다.

      데이터셋이 없거나 인덱스가 유효하지 않을 경우 에러를 발생시킵니다.

      1.6.6

      // 마지막 데이터셋에 단일 데이터 추가
      chart.addData({ x: 10, y: 20 });

      // 마지막 데이터셋에 여러 데이터 추가
      chart.addData([{ x: 10, y: 20 }, { x: 30, y: 40 }]);

      // 특정 데이터셋(0번)에 데이터 추가
      chart.addData(0, { x: 10, y: 20 });

      // 특정 데이터셋(1번)에 여러 데이터 추가
      chart.addData(1, [{ x: 10, y: 20 }, { x: 30, y: 40 }]);
    • Parameters

      Returns this

      차트에 데이터 라벨을 추가합니다. 기본 옵션을 사용하거나 사용자 정의 옵션을 적용할 수 있습니다.

      Plugins

      1.0.0

      defultDataLabels = false
      
    • Parameters

      Returns string

      새로운 데이터셋을 추가하고 고유 식별자(UID)를 반환합니다. 데이터셋 배열이 비어있으면 새로 생성합니다.

      데이터셋이 null 또는 undefined일 때 에러를 발생시킵니다.

      1.0.0

    • Parameters

      • streamingOptions: StreamingOptions

        chartjs-plugin-streaming 플러그인에 전달할 옵션 객체.

      Returns this

      실시간 스트리밍 옵션을 설정합니다. 이 메서드를 사용하기 전에, 사용자는 'chartjs-plugin-streaming'을 설치하고 Chart.js에 직접 등록해야 합니다.

      1.8.0

      // 1. 사용자 측에서 웹소켓 등 데이터 소스 설정
      const myWebSocket = new WebSocket('wss://my-data-source');

      // 2. ChartWrapper에 스트리밍 옵션 적용
      chart.addStreaming({
      duration: 20000, // 20초 분량의 데이터를 차트에 표시
      refresh: 1000, // 1초마다 차트 업데이트
      onRefresh: (chart) => {
      // 3. 데이터 소스로부터 받은 데이터를 차트에 추가
      myWebSocket.onmessage = (event) => {
      const data = JSON.parse(event.data);
      chart.data.datasets[0].data.push({
      x: data.timestamp,
      y: data.value
      });
      };
      }
      });
    • Parameters

      • defaultZoom: boolean = false

        true이면 기본 줌 옵션을 적용합니다.

      • OptionalzoomOption: object

        사용자 정의 줌 옵션입니다.

      Returns this

      setZoom(enabled, zoomOption)을 사용하세요.

      레거시 줌 설정 메서드입니다. 내부적으로 setZoom(true, ...)를 호출합니다.

      1.0.0

      defaultZoom = false
      
      // 기존 방식
      chart.addZoom(true);
      // 권장 방식
      chart.setZoom(true);
    • Parameters

      • Optionalid: string

      Returns ChartConfig

      차트 설정 객체를 생성합니다. 이 메소드는 차트의 구성 요소를 종합하여 Chart.js에서 사용할 수 있는 형식으로 반환합니다.

      1.0.0

    • Parameters

      • OptionaldatasetUidOrIndex: string | number

      Returns this

      데이터셋 데이터를 비웁니다. 식별자를 생략하면 모든 데이터셋을 비웁니다.

      2.4.0

    • Parameters

      • config: any

      Returns any

    • Protected

      Parameters

      • ds: any
      • idx: number

      Returns void

      데이터셋의 기본적은 옵션을 추가하거나 부여합니다.

      1.0.1

    • Parameters

      • uidOrIndex: string | number

        데이터셋 UID(문자열) 또는 인덱스(숫자)

      Returns CustomCartesianDataset<"bubble"> | undefined

      데이터셋을 UID 또는 인덱스로 조회합니다.

      데이터셋이 없거나 찾을 수 없을 때 에러를 발생시킵니다.

      1.6.6

      // UID로 조회
      const dataset = chart.getData('dataset-uid');

      // 인덱스로 조회
      const dataset = chart.getData(0);
    • Parameters

      • uid: string

      Returns CustomCartesianDataset<"bubble"> | undefined

      데이터셋 배열에서 주어진 UID와 일치하는 데이터셋을 반환합니다. UID가 없거나 데이터셋이 비어있으면 undefined를 반환합니다.

      UID가 없거나 데이터셋이 비어있을 때 에러를 발생시킵니다.

      1.0.0

    • Parameters

      • pluginId: string

      Returns boolean

      플러그인이 존재하는지 확인합니다.

      1.0.0

    • Returns boolean

    • Returns boolean

    • Parameters

      • Optionalid: string

      Returns { _chartId: any; data: any; options: any; plugins: any; type: any }

      차트 설정 객체를 생성합니다. 이 메소드는 레거시 지원용으로, Chart.js에서 사용할 수 있는 형식으로 반환합니다.

    • Returns (
          | {
              id: string;
              afterDestroy(chart: any): void;
              afterDraw(chart: any, args: any, options: any): void;
              beforeInit(chart: any): void;
          }
          | {
              _tooltips: WeakMap<WeakKey, any>;
              id: string;
              _handleGroupVisibility(chart: any, datasets: any[]): void;
              _handleLegendClick(
                  e: any,
                  legendItem: any,
                  legend: any,
                  toggleBehavior: string,
              ): void;
              _hideTooltip(chart: any): void;
              _hitTestLegend(chart: any, x: number, y: number): any;
              _resolveLegendDatasetIndex(legendItem: any): number | undefined;
              _setupLegendTooltip(chart: any): void;
              _showTooltip(
                  chart: any,
                  e: MouseEvent,
                  tooltipContent: string | ((context: any) => string),
                  legendItem: any,
              ): void;
              afterDestroy(chart: any): void;
              afterInit(chart: any, args: any, options: any): void;
              beforeUpdate(chart: any, args: any, options: any): void;
          }
      )[]

    • Parameters

      • value: unknown

      Returns number | undefined

    • Beta

      Parameters

      • callback: (chart: Chart<"bubble">, size: { height: number; width: number }) => void

      Returns this

      차트 리사이즈 이벤트 콜백 함수를 설정합니다.

      1.0.0

    • Parameters

      • source: Record<string, unknown>
      • path: string

      Returns unknown

    • Parameters

      • datasetUidOrIndex: string | number
      • OptionaldataUidOrIndex: string | number

      Returns this

      특정 데이터셋의 데이터 포인트를 제거합니다. 데이터 식별자를 생략하면 마지막 포인트를 제거합니다.

      2.4.0

    • Parameters

      • uidOrIndex: string | number

      Returns this

      데이터셋을 UID, 라벨 또는 인덱스로 제거합니다.

      2.4.0

    • Parameters

      • axisId: string

      Returns ScaleLimits | undefined

    • Parameters

      • uidOrIndex: string | number

      Returns number

    • Parameters

      • axisId: string

      Returns "x" | "y" | undefined

    • Parameters

      • axis: string

      Returns this

      축에 이미지를 추가합니다.

      이미지 속성이 없는 데이터셋이 있을 경우 에러를 발생시킵니다.

      Scales

      1.0.0

    • Parameters

      • borderWidth: number

        테두리 두께

      Returns this

      모든 데이터셋의 Border Width를 설정합니다.

      1.0.0

    • Parameters

      • datasetIndex: number

        데이터셋 인덱스

      • radius: number

        반지름 값

      Returns this

      특정 데이터셋의 모든 버블 데이터의 r값을 일괄 설정합니다.

      1.0.0

      bubbleChart.setAllBubbleDataRadius(0, 15); // 첫 번째 데이터셋의 모든 버블 크기를 15로 설정
      
    • Parameters

      • radius: number

        반지름 값

      Returns this

      모든 데이터셋의 버블 반지름을 설정합니다.

      1.0.0

    • Parameters

      • xAxisKey: string | false
      • yAxisKey: string | false

      Returns this

      모든 데이터셋의 파싱 키를 설정합니다. xAxisKey와 yAxisKey를 각각 설정할 수 있습니다. false로 설정하면 해당 축에 대한 파싱을 비활성화합니다.

      데이터셋이 존재하지 않을 경우 에러를 발생시킵니다.

      options

      1.0.0

    • Parameters

      • hoverRadius: number

        호버 시 반지름 값

      Returns this

      모든 데이터셋의 호버 시 버블 반지름을 설정합니다.

      1.0.0

    • Parameters

      • rotation: number

        회전 각도 (도 단위)

      Returns this

      모든 데이터셋의 회전 각도를 설정합니다.

      1.0.0

    • Parameters

      • axis: string
      • position: "left" | "right"

      Returns this

      축의 위치를 설정합니다.

      해당 축이 존재하지 않거나 position 옵션을 지원하지 않을 경우 에러를 발생시킵니다.

      1.0.0

    • Parameters

      • axis: "x" | "y"
      • Optionalmin: number
      • Optionalmax: number

      Returns this

      카테시안 차트의 축 범위를 설정합니다. 해당 차트의 스케일을 min, max 를 입력 받은 값으로 고정합니다.

      1.0.0

    • Parameters

      Returns this

      카테시안 차트의 축 제목을 설정합니다. x, y 뿐만 아니라 y1, x1 등 커스텀 축도 지원합니다.

      1.0.0

      chart.setAxisTitle('y', { display: true, text: 'Primary Y Axis' });
      chart.setAxisTitle('y1', { display: true, text: 'Secondary Y Axis' });
      chart.setAxisTitle('x', { display: true, text: 'Time', color: '#333' });
    • Parameters

      • alpha: number

      Returns this

      데이터셋의 배경색에 알파 값을 설정합니다.

      알파 값이 0.0 미만 또는 1.0 초과일 경우 에러를 발생시킵니다.

      1.0.0

      Dataset

    • Parameters

      • color: string

      Returns this

      차트의 캔버스 배경색을 설정합니다.

      1.0.0

      chart.setBackgroundColor('rgba(255, 255, 255, 0.5)');
      chart.setBackgroundColor('#f0f0f0');
    • Parameters

      • datasetIndex: number

        데이터셋 인덱스

      • borderWidth: number

        테두리 두께

      Returns this

      데이터셋의 Border Width를 설정합니다.

      1.0.0

    • Parameters

      • datasetIndex: number

        데이터셋 인덱스

      • dataIndex: number

        데이터 인덱스

      • radius: number

        반지름 값

      Returns this

      특정 데이터셋의 특정 버블 데이터의 r값을 설정합니다.

      1.0.0

      bubbleChart.setBubbleDataRadius(0, 2, 25); // 첫 번째 데이터셋의 세 번째 버블 크기를 25로 설정
      
    • Parameters

      • datasetIndex: number

        데이터셋 인덱스

      • name: string

        찾을 이름 (data 객체의 name 속성)

      • radius: number

        반지름 값

      Returns this

      특정 데이터셋에서 name으로 찾아서 버블 데이터의 r값을 설정합니다.

      1.0.0

      bubbleChart.setBubbleDataRadiusByName(0, '서울', 50); // '서울' 버블의 크기를 50으로 설정
      
    • Parameters

      • datasetIndex: number

        데이터셋 인덱스

      • filterFn: (dataPoint: any) => boolean

        필터 함수 (dataPoint) => boolean

      • radius: number

        반지름 값

      Returns this

      특정 데이터셋에서 조건에 맞는 버블들의 r값을 설정합니다.

      1.0.0

      // 인구가 50 이상인 도시만 크기 50으로
      bubbleChart.setBubbleDataRadiusWhere(0, (data) => data.population >= 50, 50);
    • Parameters

      • datasetIndex: number

        데이터셋 인덱스

      • radius: number

        반지름 값

      Returns this

      데이터셋의 버블 반지름을 설정합니다.

      1.0.0

    • Beta

      Parameters

      Returns void

      특정 데이터셋을 식별자(UID 또는 라벨)로 찾아 새로운 데이터셋으로 교체합니다.

      1.0.0

      chart.setChartData('dataset-uid-or-label', { label: 'New Dataset', data: [10, 20, 30] });
      @beta
    • Parameters

      • uidOrIndex: string | number

        데이터셋 UID(문자열) 또는 인덱스(숫자)

      • dataset: CustomCartesianDataset<"bubble">

        새로운 데이터셋

      Returns this

      데이터셋을 UID 또는 인덱스로 교체합니다.

      데이터셋이 없거나 찾을 수 없을 때 에러를 발생시킵니다.

      1.6.6

      // UID로 교체
      chart.setData('dataset-uid', { label: 'New Dataset', data: [...] });

      // 인덱스로 교체
      chart.setData(0, { label: 'New Dataset', data: [...] });
    • Parameters

      Returns this

      주어진 UID를 가진 데이터셋을 새로운 데이터셋으로 교체합니다. UID가 없거나 데이터셋이 비어있으면 에러를 발생시킵니다.

      UID가 없거나 데이터셋이 비어있을 때 에러를 발생시킵니다.

      1.0.0

    • Parameters

      • uidOrIndex: string | number
      • group: string | number

      Returns this

      데이터셋 그룹을 지정합니다. 같은 그룹은 토글 시 함께 제어할 수 있습니다.

      2.4.0

    • Parameters

      • datasetIndex: number
      • xAxisKey: string | false
      • yAxisKey: string | false

      Returns this

      특정 데이터셋의 파싱 키를 설정합니다. xAxisKey와 yAxisKey를 각각 설정할 수 있습니다. false로 설정하면 해당 축에 대한 파싱을 비활성화합니다.

      데이터셋이 존재하지 않을 경우 에러를 발생시킵니다.

      options

      1.0.0

    • Parameters

      • uidOrIndex: string | number
      • visible: boolean
      • syncGroup: boolean = true

      Returns this

      데이터셋의 표시 상태를 설정합니다. 그룹이 있으면 같은 그룹에 함께 반영할 수 있습니다.

      2.4.0

    • Parameters

      • axis: string
      • gridOptions: GridLineOptions

      Returns this

      축의 그리드 라인 옵션을 설정합니다.

      1.0.0

      chart.setGrid('y', { color: 'rgba(0, 0, 0, 0.1)', lineWidth: 1 });
      
    • Parameters

      • axis: "x" | "y"
      • gridOptions: { color?: string; display?: boolean; lineWidth?: number }

      Returns this

      카테시안 차트의 그리드 옵션을 설정합니다.

      1.0.0

    • Parameters

      • datasetIndex: number

        데이터셋 인덱스

      • hoverRadius: number

        호버 시 반지름 값

      Returns this

      데이터셋의 호버 시 버블 반지름을 설정합니다.

      1.0.0

    • Parameters

      Returns this

      차트의 범례를 설정합니다.

      1.0.0

      chart.setLegend({
      position: 'bottom',
      align: 'center',
      labels: {
      boxWidth: 40,
      padding: 15,
      font: {
      size: 14,
      weight: 'bold'
      },
      color: '#333',
      usePointStyle: true
      }
      onClick: (e, legendItem, legend) => {
      console.log('Legend clicked:', legendItem);
      }
      });
    • Parameters

      • padding: any

      Returns this

      차트의 패딩을 설정합니다.

      options

      1.0.0

    • Parameters

      • xAxisKey: string | false
      • yAxisKey: string | false

      Returns this

      데이터셋의 파싱 키를 설정합니다. xAxisKey와 yAxisKey를 각각 설정할 수 있습니다. false로 설정하면 해당 축에 대한 파싱을 비활성화합니다.

      xAxisKey와 yAxisKey가 모두 false일 경우 에러를 발생시킵니다.

      options

      1.0.0

    • Parameters

      • plugin: any

        단일 플러그인 또는 플러그인 배열

      • replaceIfExists: boolean = true

      Returns this

      플러그인을 추가합니다. 단일 플러그인 또는 플러그인 배열을 받을 수 있습니다.

      1.0.0

    • Parameters

      • datasetIndex: number

        데이터셋 인덱스

      • rotation: number

        회전 각도 (도 단위)

      Returns this

      데이터셋의 회전 각도를 설정합니다.

      1.0.0

    • Parameters

      Returns this

      차트 마운트 직전 DOM 오버레이 spinner를 설정합니다. 실제 동작은 mountChart helper가 담당하며, build(id) 또는 _chartId로 안정적인 canvas id가 필요합니다.

      2.4.0

      chart.setSpinnerOverlay(true);
      
      chart.setSpinnerOverlay({
      enabled: true,
      text: '차트 준비 중...',
      minVisibleMs: 200,
      });
      chart.setSpinnerOverlay({
      enabled: true,
      text: false,
      spinner: () => {
      const spinner = document.createElement('div');
      spinner.innerHTML = '<svg width="42" height="42" viewBox="0 0 42 42"><circle cx="21" cy="21" r="18" fill="none" stroke="#bfdbfe" stroke-width="4" /><path d="M21 3 A18 18 0 0 1 39 21" fill="none" stroke="#2563eb" stroke-width="4" stroke-linecap="round" /></svg>';
      return spinner;
      }
      });
    • Parameters

      • axis: string = 'x'

        시간 축을 적용할 축 ID. 기본값은 'x'입니다.

      • timeScaleConfig: TimeScaleConfig = {}

        시간 축 상세 설정입니다. 비워두면 기본 시간 축 설정이 적용됩니다.

      Returns this

      카테시안 차트에 시간 축을 설정합니다. 축 타입은 기본적으로 time이 적용되며, timeseries, realtime도 설정할 수 있습니다.

      별도 옵션을 주지 않으면 DefaultTimeScaleOptions의 기본값이 적용됩니다. 기본값:

      • unit: 'hour'
      • tooltipFormat: 'yyyy-MM-dd HH:mm'
      • displayFormats.hour: 'HH:mm'

      parsing 옵션을 함께 전달하면 내부적으로 setParsingKey()를 호출해 { x, y } 형태 데이터 파싱 설정까지 한 번에 적용합니다.

      주의:

      • type: 'time' 또는 type: 'timeseries'를 사용할 때는 소비 프로젝트에 date adapter가 필요합니다.
      • type: 'realtime'를 사용할 때는 chartjs-plugin-streaming 등록이 필요합니다.

      2.3.2

      // 기본 시간 축 적용
      const chart = ChartWrapper.create('line', [], [
      {
      label: 'Current',
      data: [{ x: '2026-06-04 09:00', y: 10 }, { x: '2026-06-04 10:00', y: 18 }]
      }
      ])
      .setTimeScale('x', {
      parsing: { xAxisKey: 'x', yAxisKey: 'y' }
      })
      .build('basic-time-line');
      // hour 단위 시간 축과 포맷 지정
      const chart = ChartWrapper.create('line', [], datasets)
      .setTimeScale('x', {
      unit: 'hour',
      displayFormats: {
      hour: 'HH:mm'
      },
      tooltipFormat: 'yyyy-MM-dd HH:mm',
      ticks: {
      maxRotation: 0
      },
      parsing: {
      xAxisKey: 'x',
      yAxisKey: 'y'
      }
      })
      .build('hour-time-line');
      // timeseries 축 사용
      const chart = ChartWrapper.create('scatter', [], datasets)
      .setTimeScale('x', {
      type: 'timeseries',
      unit: 'day',
      bounds: 'data'
      })
      .build('timeseries-scatter');
    • Parameters

      Returns this

      차트의 툴팁을 설정합니다. 전역 setChartConfig({ tooltip: ... }) 설정이 있으면 이를 기본값으로 사용하고, 이 메서드 호출값으로 병합합니다.

      2.4.0

      chart.setTooltip({
      enabled: true,
      backgroundColor: 'rgba(8, 26, 61, 0.95)'
      });
    • Parameters

      • datasetIndex: number
      • axisId: string = 'y'

      Returns this

      데이터셋에 y축을 설정합니다.

      1.0.0

      axisId = 'y'
      
    • Parameters

      • datasetIndex: number
      • axisID: string

      Returns this

      데이터셋의 yAxisID를 설정합니다.

      해당 차트 타입이 yAxisID 옵션을 지원하지 않을 경우 에러를 발생시킵니다.

      1.0.0

    • Parameters

      Returns this

      줌 기능을 설정합니다. false를 전달하면 현재 차트의 줌 설정을 제거합니다. 전역 setChartConfig({ zoom: true }) 설정이 있더라도 이 메서드로 차트별 비활성화가 가능합니다.

      2.4.0

      chart.setZoom(true, {
      limits: {
      x: { min: 'original', max: 'original' },
      y: { min: 0, max: 100 },
      },
      });
      chart.setZoom(true, {
      autoLimits: 'original',
      });
      chart.setZoom(true, {
      autoLimits: { x: 'original', y1: 'data' },
      });
    • Beta

      Returns this

      스파크 버블 차트 옵션을 적용합니다.

      1.0.0 (기능 테스트 중)

    • Parameters

      • uidOrIndex: string | number
      • syncGroup: boolean = true

      Returns this

      데이터셋의 표시 상태를 토글합니다.

      2.4.0

    • Parameters

      • values: number[]

      Returns ScaleLimits | undefined

    • Parameters

      • datasetIndex: number

        데이터셋 인덱스

      • updateFn: (dataPoint: any, index: number) => number

        업데이트 함수 (dataPoint, index) => newRadius

      Returns this

      특정 데이터셋의 버블 데이터 r값을 함수를 통해 업데이트합니다.

      1.0.0

      // 모든 버블의 크기를 2배로
      bubbleChart.updateBubbleDataRadius(0, (data) => data.r * 2);

      // 인구에 비례하여 크기 설정
      bubbleChart.updateBubbleDataRadius(0, (data) => Math.sqrt(data.population) * 3);

      // 조건부 업데이트
      bubbleChart.updateBubbleDataRadius(0, (data) =>
      data.name === '서울' ? 50 : data.r
      );
    • Type Parameters

      • TType extends keyof ChartTypeRegistry

      Parameters

      Returns TType extends keyof ChartBuilderMap
          ? ChartBuilderMap[TType]
          : ChartBuilder<TType>

    • Parameters

      • type: keyof ChartTypeRegistry

      Returns boolean

    • Type Parameters

      • TType extends keyof ChartTypeRegistry
      • TInstance

      Parameters

      Returns void

    Properties

    labels: (string | number)[] | undefined
    plugins?: any
    type: "bubble"