Chart Presetsv1.0.0

روندِ یک یا چند مقدار در طولِ زمان، بی‌پرشدگی؛ وقتی شکلِ تغییر مهم‌تر از حجم است. نمونهٔ بالا تعاملی است: با هدر بینِ سری‌ها جابه‌جا شوید.

ری‌اکت ۱۹ و Next.js با پیاده‌سازی دسترس‌پذیری داخلی دیگویو ۳ با Composition API — هنوز برای این کامپوننت پورت نشدهSvelte ۵ با runes — هنوز برای این کامپوننت پورت نشدهانگولار با signals و دایرکتیوهای standalone — هنوز برای این کامپوننت پورت نشده

این کامپوننت فعلاً برای ۱ فریم‌ورک از ۴ فریم‌ورک آماده است.

نمودار خطی، تعاملی
سه ماهِ گذشته، روزانه؛ روی هر عدد بزنید

این نمونه هنوز برای Vue پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

این نمونه هنوز برای Svelte پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

این نمونه هنوز برای Angular پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

نصب

با CLI اختصاصی digdesign کامپوننت را از رجیستری دیگ نصب کنید؛ وابستگی‌ها و فایل‌ها خودکار اضافه می‌شوند.

پکیج‌منیجر پیش‌فرض Node.jsنصب سریع با لینک سخت و دیسک مشترکYarn نسخهٔ ۲ به بالا (Berry)رانتایم و پکیج‌منیجر Bun
npx digdesign@latest add https://docs.digdesign.ir/r/chart-presets.json
pnpm dlx digdesign@latest add https://docs.digdesign.ir/r/chart-presets.json
yarn dlx digdesign@latest add https://docs.digdesign.ir/r/chart-presets.json
bunx --bun digdesign@latest add https://docs.digdesign.ir/r/chart-presets.json

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

استفاده

import { LineChart } from "@/components/ui/chart-presets"

<LineChart
  data={data}
  categoryKey="month"
  series={[
    { key: "online", label: "آنلاین" },
    { key: "inStore", label: "حضوری" },
  ]}
  curve="smooth"
/>

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

ترکیب اجزا

curve شکلِ خط را تعیین می‌کند (smooth، linear، step). showPoints نقطه روی هر داده می‌گذارد؛ برای سری‌های پرنقطه (روزانهٔ سه‌ماهه) خاموشش کنید. pointShape شکلِ نقطه و colorByCategory رنگِ هر نقطه را بر اساسِ دسته عوض می‌کند.

null در داده یعنی «داده نداریم» و خط را می‌شکند؛ با صفر یکی نیست. showLabels مقدار را کنارِ هر نقطه می‌نویسد؛ برای شش تا دوازده نقطه مناسب است، نه بیشتر.

دسترس‌پذیری

  • چند خط با رنگِ نزدیک را با راهنما یا آیکون از هم جدا کنید؛ رنگ تنها نشانه نباشد.
  • برای روندِ مهم، جملهٔ خلاصه («۵٪ رشد در این ماه») را در فوترِ کارت بنویسید.

مرجع API

داده

ویژگینوعپیش‌فرضتوضیح
dataChartRow[]—آرایهٔ ردیف‌ها؛ همان شکلی که از API می‌آید.
categoryKeystring—فیلدی که روی محورِ دسته‌ها می‌نشیند (مثلاً ماه).
series{ key, label?, color?, icon? }[]—فیلدهایی که رسم می‌شوند. color پیش‌فرض --chart-N است؛ icon در تولتیپ می‌نشیند و راهنما را HTML می‌کند.

LineChart

ویژگینوعپیش‌فرضتوضیح
curve"smooth" | "linear" | "step""linear"شکلِ خط.
showPointsbooleantrueنقطه روی هر داده.
pointShape"circle" | "diamond" | "rect" | "roundRect" | "triangle" | "emptyCircle""circle"شکلِ نقطه.
colorByCategorybooleanfalseهر نقطه رنگِ دستهٔ خودش.
showLabelsbooleanfalseمقدار کنارِ هر نقطه.

مشترک

ویژگینوعپیش‌فرضتوضیح
showLegendbooleanبیش از یک سریراهنمای رنگ‌ها؛ اولین سری سمتِ راست.
showGridbooleantrueخطوطِ شبکه در امتدادِ محورِ مقدار.
hideValueAxisbooleanfalseعددهای محورِ مقدار پنهان؛ وقتی برچسب یا تولتیپ کافی است.
valueFormatter(value: number) => stringعددِ فارسیروی محور، برچسب و تولتیپ هر سه اثر می‌کند.
cursor"line" | "band" | "none""line"نشانگرِ دستهٔ زیرِ ماوس؛ band نوارِ پرِ پشتِ میله‌هاست.
tooltipChartTooltipOptions—ظاهرِ تولتیپ: indicator، hideLabel، labelFormatter، formatValue و showTotal. جزئیات در برگهٔ «تولتیپ».
defaultTooltipIndexnumber—تولتیپِ این اندیس از اول باز باشد؛ مثلاً مقدارِ امروز.
classNamestringh-72 w-fullارتفاع را از همین‌جا بدهید؛ نمودار ارتفاعِ ذاتی ندارد.

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک در دست کار است.