logologo
시작
가이드
개발
플러그인
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
시작
가이드
개발
플러그인
API
logologo
개요
빠른 시작

기능 소개

데이터 조회
차트 옵션
미리보기 & 저장
컨텍스트 환경 변수 사용
페이지 필터 & 연동

고급

SQL 모드로 데이터 조회
사용자 정의 차트 구성
사용자 정의 상호작용 이벤트
자주 묻는 질문
모범 사례
Previous PageSQL 모드로 데이터 조회
Next Page사용자 정의 상호작용 이벤트
TIP

이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#사용자 정의 차트 구성

사용자 정의 모드에서는 코드 편집기에서 JS를 작성하여 차트를 구성합니다. ctx.data를 기반으로 완전한 ECharts option을 반환하며, 여러 시리즈를 병합하고 복잡한 툴팁과 동적인 스타일을 적용하는 데 적합합니다. 이론적으로 모든 ECharts 기능과 모든 차트 유형을 지원할 수 있습니다.

clipboard-image-1761524637

#데이터 컨텍스트

  • ctx.data.objects: 객체 배열 (각 행을 객체로 표현)
  • ctx.data.rows: 2차원 배열 (헤더 포함)
  • ctx.data.columns: 열별로 그룹화된 2차원 배열

권장 사용법: 데이터를 dataset.source에 통합하여 사용하시기를 권장합니다. 자세한 사용법은 ECharts 문서를 참조해 주세요.

데이터셋

축

예시

가장 간단한 예시부터 살펴보겠습니다.

#예시 1: 월별 주문량 막대 차트

20251027082816

return {
  dataset: { source: ctx.data.objects || [] },
  xAxis: { type: 'category' },
  yAxis: {},
  series: [
    {
      type: 'bar',
      showSymbol: false,
    },
  ],
}

#예시 2: 판매 추세 차트

clipboard-image-1761525188

return {
  dataset: {
    source: ctx.data.objects.reverse()
  },
  title: {
    text: "Monthly Sales Trend",
    subtext: "Last 12 Months",
    left: "center"
  },
  tooltip: {
    trigger: "axis",
    axisPointer: {
      type: "cross"
    }
  },
  legend: {
    data: ["Revenue", "Order Count", "Avg Order Value"],
    bottom: 0
  },
  grid: {
    left: "5%",
    right: "5%",
    bottom: "60",
    top: "80",
    containLabel: true
  },
  xAxis: {
    type: "category",
    boundaryGap: false,
    axisLabel: {
      rotate: 45
    }
  },
  yAxis: [
    {
      type: "value",
      name: "Amount(¥)",
      position: "left",
      axisLabel: {
        formatter: (value) => {
          return (value/10000).toFixed(0) + '0k';
        }
      }
    },
    {
      type: "value",
      name: "Order Count",
      position: "right"
    }
  ],
  series: [
    {
      name: "Revenue",
      type: "line",
      smooth: true,
      encode: {
        x: "month",
        y: "monthly_revenue"
      },
      areaStyle: {
        opacity: 0.3
      },
      itemStyle: {
        color: "#5470c6"
      }
    },
    {
      name: "Order Count",
      type: "bar",
      yAxisIndex: 1,
      encode: {
        x: "month",
        y: "order_count"
      },
      itemStyle: {
        color: "#91cc75",
        opacity: 0.6
      }
    },
    {
      name: "Avg Order Value",
      type: "line",
      encode: {
        x: "month",
        y: "avg_order_value"
      },
      itemStyle: {
        color: "#fac858"
      },
      lineStyle: {
        type: "dashed"
      }
    }
  ]
}

권장 사항:

  • 순수 함수 스타일을 유지하고, ctx.data만을 기반으로 option을 생성하여 부작용을 피하세요.
  • 쿼리 열 이름 변경은 인덱싱에 영향을 미치므로, 이름을 표준화하고 '데이터 보기'에서 확인한 후 코드를 수정하세요.
  • 데이터 양이 많을 때는 JS에서 복잡한 동기 계산을 피하고, 필요한 경우 쿼리 단계에서 집계하세요.

#더 많은 예시

더 많은 사용 예시는 NocoBase 데모 앱을 참조하실 수 있습니다.

또한 ECharts 공식 예시를 확인하여 원하는 차트 효과를 선택하고, JS 구성 코드를 참조 및 복사할 수 있습니다.

#미리 보기 및 저장

20251027083938

  • 오른쪽 또는 하단의 '미리 보기'를 클릭하여 차트를 새로 고치고 JS 구성 내용을 확인하세요.
  • '저장'을 클릭하면 현재 JS 구성 내용이 데이터베이스에 저장됩니다.
  • '취소'를 클릭하면 마지막 저장 상태로 되돌아갑니다.