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

    Class BarChart

    Hierarchy (View Summary)

    Implements

    Index

    Accessors

    Constructors

    Methods

    addData addDataLabels addDataset addRangeSlider addStreaming addZoom applyGlobalPluginConfig applyGlobalZoomConfig build clearData clone clonePlugins cloneValue configAop copy customLegend decorateDataset ensureZoomResetPlugin extractParsedPointValue ganttChart getChartData getData getDataset getDatasetByTarget getDatasetVisibilityState getGroupedDatasetIndexes hasPlugin isBar isLine isScatter makeConfig mergeOptions mergePlugins mustHavePlugins normalize normalizeLimitValue normalizeZoomOptions onResize readValueByPath removeData removeDataset removePlugin removeZoomResetPlugin requireDatasets requireLabels resolveAutoZoomLimits resolveAxisLabelLimitValues resolveAxisZoomLimits resolveDatasetIndex resolveMustHavePlugins resolveParsingKey resolveZoomAxis setAddImg setAllBarPercentage setAllBarThickness setAllBorderRadius setAllBorderWidth setAllCategoryPercentage setAllDatasetsParsing setAllDatasetStyle setAllMaxBarThickness setAxisPosition setAxisRange setAxisTitle setBackgroundAlpha setBackgroundColor setBarImg setBarPercentage setBarThickness setBorderRadius setBorderWidth setCategoryPercentage setChartData setData setDataset setDatasetGroup setDatasetParsing setDatasetStyle setDatasetVisibilityState setDatasetVisible setGrid setGridOptions setLegend setMaxBarThickness setPadding setParsingKey setPlugin setScales setSpinnerOverlay setStacked setTimeScale setTitle setTooltip setYAxisForDataset setYAxisID setZoom sparkBarChart toggleDataset toZoomScaleLimits create has register

    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

    • Beta

      Returns this

      간트차트 스타일을 적용합니다. 데이터의 x 값은 반드시 yyyy-mm-dd 포맷이어야 합니다. X축을 time scale로 설정하고, indexAxis를 'y'로 설정하여 horizontal bar chart로 표시합니다. 모든 dataset에 borderWidth: 1, borderSkipped: false가 자동으로 적용됩니다.

      데이터가 yyyy-mm-dd 포맷이 아닐 경우 INVALID_DATA_STRUCTURE 에러 발생

      1.0.0

      // 간트차트 데이터 형식 (배열):
      const datasets = [
      {
      label: 'Task 1',
      data: [['2024-01-01', '2024-01-05']],
      backgroundColor: 'rgba(255, 99, 132, 0.5)'
      },
      {
      label: 'Task 2',
      data: [['2024-01-03', '2024-01-08']],
      backgroundColor: 'rgba(54, 162, 235, 0.5)'
      }
      ];

      // 간트차트 데이터 형식 (객체):
      const datasets = [
      {
      label: 'Task 1',
      data: [
      { x: '2024-01-01', y: 0 },
      { x: '2024-01-05', y: 0 }
      ]
      }
      ];

      const chart = ChartWrapper.create('bar', ['Task 1', 'Task 2'], datasets)
      .ganttChart()
      .build();
      @beta (기능 테스트 )
    • Parameters

      • uidOrIndex: string | number

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

      Returns CustomCartesianDataset<"bar"> | undefined

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

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

      1.6.6

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

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

      • uid: string

      Returns CustomCartesianDataset<"bar"> | 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<"bar">, 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

      • percentage: number

      Returns this

      모든 데이터셋의 Bar Percentage를 설정합니다.

      1.0.0

    • Parameters

      • thickness: number

      Returns this

      모든 데이터셋의 Bar Thickness를 설정합니다.

      1.0.0

    • Parameters

      • borderRadius: number

      Returns this

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

      1.0.0

    • Parameters

      • borderWidth: number

      Returns this

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

      1.0.0

    • Parameters

      • percentage: number

      Returns this

      모든 데이터셋의 Category Percentage를 설정합니다.

      1.0.0

    • Parameters

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

      Returns this

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

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

      options

      1.0.0

    • Parameters

      • maxThickness: number

      Returns this

      모든 데이터셋의 Max Bar Thickness를 설정합니다.

      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

      • axis: string

      Returns this

      축에 이미지를 설정합니다. 축이 이미 존재하는 경우 경고 메시지를 출력합니다.

      1.0.0

    • Parameters

      • datasetIndex: number
      • percentage: number

      Returns this

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

      1.0.0

    • Parameters

      • datasetIndex: number
      • thickness: number

      Returns this

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

      1.0.0

    • Parameters

      • datasetIndex: number
      • borderRadius: number

      Returns this

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

      1.0.0

    • Parameters

      • datasetIndex: number
      • borderWidth: number

      Returns this

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

      1.0.0

    • Parameters

      • datasetIndex: number
      • percentage: number

      Returns this

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

      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<"bar">

        새로운 데이터셋

      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

      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

      • datasetIndex: number
      • maxThickness: number

      Returns this

      데이터셋의 Max Bar Thickness를 설정합니다.

      1.0.0

    • 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

      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

      • isStacked: boolean

      Returns this

      모든 축에 대해 Stacked 옵션을 설정합니다.

      1.0.0

    • 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

      스파크바 차트 옵션을 적용합니다. mixed 차트에서는 동작하지 않습니다.

      1.0.0 (기능 테스트 중)

    • Parameters

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

      Returns this

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

      2.4.0

    • Parameters

      • values: number[]

      Returns ScaleLimits | undefined

    • 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: "bar"