نمودار دایرهای (Pie Chart)
کامپوننت نمایش داده در نمودار دایرهای
معرفی
کامپوننت PartoPieChart برای نمایش نسبتها و درصدها به صورت نمودار دایرهای استفاده میشود. این کامپوننت بهطور خودکار از تم رنگی سیستم طراحی استفاده میکند.
پیشنمایش
استفاده
import { PartoPieChart } from '@parto-system-design/ui';
const data = [
{ id: 'محصول A', label: 'محصول A', value: 40 },
{ id: 'محصول B', label: 'محصول B', value: 25 },
{ id: 'محصول C', label: 'محصول C', value: 20 },
{ id: 'محصول D', label: 'محصول D', value: 15 },
];
<div className="h-[400px]">
<PartoPieChart
data={data}
innerRadius={0.5}
padAngle={0.7}
cornerRadius={3}
activeOuterRadiusOffset={8}
enableArcLinkLabels={false}
/>
</div>نمودار حلقهای (Donut)
<PartoPieChart
data={data}
innerRadius={0.5}
padAngle={0.7}
cornerRadius={3}
/>بدون برچسبهای اتصال
<PartoPieChart
data={data}
enableArcLinkLabels={false}
enableArcLabels={true}
/>با انیمیشن hover
<PartoPieChart
data={data}
activeOuterRadiusOffset={8}
activeInnerRadiusOffset={8}
/>با Legend
<PartoPieChart
data={data}
margin={{ top: 40, right: 80, bottom: 80, left: 80 }}
legends={[
{
anchor: 'bottom',
direction: 'row',
justify: false,
translateX: 0,
translateY: 56,
itemsSpacing: 0,
itemWidth: 100,
itemHeight: 18,
itemDirection: 'right-to-left',
itemOpacity: 1,
symbolSize: 18,
symbolShape: 'circle',
},
]}
/>با تنظیمات پیشرفته
<PartoPieChart
data={data}
margin={{ top: 40, right: 80, bottom: 80, left: 80 }}
innerRadius={0.5}
padAngle={0.7}
cornerRadius={3}
activeOuterRadiusOffset={8}
borderWidth={1}
arcLinkLabelsSkipAngle={10}
arcLinkLabelsTextColor="hsl(var(--foreground))"
arcLinkLabelsThickness={2}
arcLabelsSkipAngle={10}
arcLabelsTextColor={{
from: 'color',
modifiers: [['darker', 2]],
}}
/>Props اصلی
Props تعامل
Props برچسب
تنظیمات رنگ
// استفاده از رنگهای خودکار تم
<PartoPieChart data={data} />
// تنظیم رنگ سفارشی
<PartoPieChart
data={data}
colors={{ scheme: 'nivo' }}
/>
// رنگ از داده
const dataWithColor = [
{ id: 'دسته ۱', value: 35, color: 'hsl(var(--chart-1))' },
{ id: 'دسته ۲', value: 25, color: 'hsl(var(--chart-2))' },
];تمبندی خودکار
این کامپوننت بهطور خودکار:
- از رنگهای
--chart-1تا--chart-5استفاده میکند - با تم dark/light سازگار است
- tooltip با رنگ پسزمینه مناسب
- برچسبها با رنگ foreground
نکات بهینهسازی
- برای دادههای کم از
pieاستفاده کنید - برای دادههای زیاد از
donutبهتر است arcLabelsSkipAngleبرای جلوگیری از شلوغی برچسبها- در موبایل
marginکمتری در نظر بگیرید
ملاحظات RTL
- برچسبها راستچین هستند
- Legend در موقعیت مناسب RTL
- دادهها میتوانند فارسی باشند
- جهت چرخش برای RTL تنظیم شده
مثال کامل در کارت
<Card>
<CardHeader>
<CardTitle>توزیع فروش</CardTitle>
<CardDescription>نسبت فروش بر اساس دسته</CardDescription>
</CardHeader>
<CardContent>
<div className="h-[400px]">
<PartoPieChart
data={data}
margin={{ top: 40, right: 80, bottom: 80, left: 80 }}
innerRadius={0.5}
padAngle={0.7}
cornerRadius={3}
activeOuterRadiusOffset={8}
arcLinkLabelsSkipAngle={10}
arcLabelsSkipAngle={10}
/>
</div>
</CardContent>
</Card>مقایسه با Bar Chart
| ویژگی | Pie Chart | Bar Chart |
|---|---|---|
| کاربرد | نسبتها | مقایسه مقادیر |
| داده | کم (کمتر از 10) | بدون محدودیت |
| دقت | متوسط | بالا |
| فضا | کم | بیشتر |