Chart

Recharts 기반의 데이터 시각화 컴포넌트

Bar Chart

기본 막대 차트입니다. ChartContainer로 감싸서 스타일을 적용합니다.

tsx
const chartConfig: ChartConfig = {
  desktop: {
    label: 'Desktop',
    color: 'var(--color-primary)',
  },
  mobile: {
    label: 'Mobile',
    color: 'var(--color-secondary)',
  },
};

<ChartContainer config={chartConfig} className="h-[300px] w-full">
  <BarChart data={data}>
    <XAxis dataKey="month" />
    <YAxis />
    <ChartTooltip content={<ChartTooltipContent />} />
    <ChartLegend content={<ChartLegendContent />} />
    <Bar dataKey="desktop" fill="var(--color-desktop)" radius={4} />
    <Bar dataKey="mobile" fill="var(--color-mobile)" radius={4} />
  </BarChart>
</ChartContainer>

Line Chart

선형 차트로 추세를 표현합니다.

tsx
<ChartContainer config={chartConfig} className="h-[300px] w-full">
  <LineChart data={data}>
    <XAxis dataKey="month" />
    <YAxis />
    <ChartTooltip content={<ChartTooltipContent />} />
    <ChartLegend content={<ChartLegendContent />} />
    <Line
      type="monotone"
      dataKey="desktop"
      stroke="var(--color-desktop)"
      strokeWidth={2}
    />
    <Line
      type="monotone"
      dataKey="mobile"
      stroke="var(--color-mobile)"
      strokeWidth={2}
    />
  </LineChart>
</ChartContainer>

Pie Chart

원형 차트로 비율을 표현합니다.

tsx
<ChartContainer config={pieConfig} className="h-[300px] w-full">
  <PieChart>
    <ChartTooltip content={<ChartTooltipContent />} />
    <Pie
      data={pieData}
      dataKey="visitors"
      nameKey="browser"
      cx="50%"
      cy="50%"
      innerRadius={60}
      outerRadius={80}
    />
  </PieChart>
</ChartContainer>

Usage

tsx
import {
  ChartContainer,
  ChartTooltip,
  ChartTooltipContent,
  ChartLegend,
  ChartLegendContent,
  type ChartConfig,
} from '@gpters-internal/ui';
import { Bar, BarChart, XAxis, YAxis } from 'recharts';

const chartConfig: ChartConfig = {
  value: {
    label: 'Value',
    color: 'var(--color-primary)',
  },
};

function Example() {
  return (
    <ChartContainer config={chartConfig}>
      <BarChart data={data}>
        <XAxis dataKey="name" />
        <YAxis />
        <ChartTooltip content={<ChartTooltipContent />} />
        <Bar dataKey="value" fill="var(--color-value)" />
      </BarChart>
    </ChartContainer>
  );
}