نمودار

chartکامپوننت

نمودار میله‌ای، خطی و اسپارک‌لاین با SVG خالص؛ برچسب‌های شمسی، هفته از شنبه، تیک‌های فارسی، محور مقدار سمت راست.

فروش هفتگی (میله‌ای)

۰۱۰ میلیون۲۰ میلیونیدسچپجش

بازدید ۱۰ روز اخیر (خطی)

۰۲۵۰۵۰۰۷۵۰۱ هزار۱۹ شهریور۲۰ شهریور۲۱ شهریور۲۲ شهریور۲۳ شهریور۲۴ شهریور۲۵ شهریور۲۶ شهریور۲۷ شهریور۲۸ شهریور
اسپارک‌لاین:

نصب

  1. با CLI

    اگر هنوز init نکرده‌اید، اول از راهنمای نصب پروژه را آماده کنید. بعد این دستور قطعه و وابستگی‌هایش را می‌نویسد.

    $ npx vibefarsi add chart
  2. نصب دستی

    محتوای تب «کد» را در components/ui/chart.tsx بگذارید.

    $ npm i lucide-react
    کپی کل فایلregistry json

استفاده

usage.tsx
1import { BarChart, LineChart, Sparkline, jalaliWeekLabels, jalaliDayLabels } from "@/components/ui/chart"23const week = jalaliWeekLabels() // ["ش","ی","د","س","چ","پ","ج"] ending today4<BarChart data={week.map((label, i) => ({ label, value: sales[i] }))} highlight={6} />5<LineChart data={jalaliDayLabels(10).map((label, i) => ({ label, value: visits[i] }))} />6<Sparkline data={[3, 5, 4, 8, 7, 9]} />

پراپ‌ها

پراپنوعپیش‌فرضتوضیح
data{ label: string; value: number }[]-نقطه‌ها؛ اولی سمت راست رسم می‌شود.
format(n) => stringcompactFaقالب تیک‌ها: «۱۲ میلیون»، «۸۰۰ هزار».
highlightnumber-شاخص میله‌ی برجسته (مثلاً امروز).
heightnumber180ارتفاع viewBox.

نکته‌های راست‌چین

  • بدون کتابخانه‌ی نمودار؛ SVG با viewBox و عرض ۱۰۰٪. برای داشبوردهای سنگین همین هندسه را می‌توان به Recharts منتقل کرد.
  • jalaliWeekLabels از شنبه شروع نمی‌کند؛ هفت روز اخیر را با نام روز شمسی برمی‌گرداند. برای هفته‌ی تقویمی ثابت از JALALI_WEEKDAYS_SHORT استفاده کنید.