دادهنمایی
راهنمای استفاده از نمودارها و ویژوالیزیشن داده در پرتو — رنگ، دسترسیپذیری، و الگوها
پلتفرمهای سوشال لیسنینگ داده-محور هستند. این صفحه اصول و الگوهای استفاده از نمودارها در پرتو را توضیح میدهد.
نمودارهای موجود
| کامپوننت | کاربرد |
|---|---|
LineChart | روند زمانی (ذکر، engagement در طول زمان) |
BarChart | مقایسه (پلتفرمها، دستهها) |
PieChart | توزیع (احساسات، سهم پلتفرم) |
HeatMap | تراکم زمانی (بهترین ساعات پست) |
WordCloud | فراوانی کلمات (هشتگها، موضوعات) |
رنگهای نمودار
پنج رنگ پایه
پرتو پنج توکن رنگی اختصاصی برای نمودارها دارد که در هر سه تم کار میکنند:
--chart-1 /* رنگ اول — اصلی */
--chart-2 /* رنگ دوم */
--chart-3 /* رنگ سوم */
--chart-4 /* رنگ چهارم */
--chart-5 /* رنگ پنجم */این رنگها توسط hook useRootStyles() در زمان رندر خوانده میشوند:
import { useRootStyles } from '@parto-system-design/ui'
// داخل نمودارها به صورت خودکار اعمال میشود
const styles = useRootStyles()
const chartColors = [
styles['--chart-1'],
styles['--chart-2'],
styles['--chart-3'],
]رنگهای احساسات در نمودار
برای نمودارهای sentiment، از توکنهای اختصاصی استفاده کنید:
const sentimentColors = {
positive: styles['--sentiment-positive'],
neutral: styles['--sentiment-neutral'],
negative: styles['--sentiment-negative'],
}رنگهای تعامل در نمودار
const engagementColors = {
excellent: styles['--engagement-excellent'],
'very-good': styles['--engagement-very-good'],
good: styles['--engagement-good'],
average: styles['--engagement-average'],
poor: styles['--engagement-poor'],
'very-poor': styles['--engagement-very-poor'],
}تغییر تم
برای مشاهده نمودارها در تمهای مختلف:
رنگهای نمودار به صورت خودکار با تغییر تم بهروز میشوند — نیازی به هیچ تنظیم اضافهای نیست.
الگوهای کاربردی
نمودار خط — روند ذکرها
import { LineChart } from '@parto-system-design/ui'
<LineChart
data={mentionData}
isLoading={isLoading}
xKey="date"
yKeys={['count']}
labels={{ count: 'تعداد ذکر' }}
/>نمودار دایره — توزیع احساسات
import { PieChart } from '@parto-system-design/ui'
<PieChart
data={[
{ id: 'positive', label: 'مثبت', value: 65 },
{ id: 'neutral', label: 'خنثی', value: 25 },
{ id: 'negative', label: 'منفی', value: 10 },
]}
isLoading={isLoading}
/>نمودار میلهای — مقایسه پلتفرم
import { BarChart } from '@parto-system-design/ui'
<BarChart
data={platformData}
isLoading={isLoading}
xKey="platform"
yKeys={['mentions', 'engagement']}
labels={{
mentions: 'ذکر',
engagement: 'تعامل',
}}
/>حالت بارگذاری
همه نمودارها از prop isLoading پشتیبانی میکنند. در حالت loading، نمودار با Skeleton جایگزین میشود:
<LineChart
data={data}
isLoading={isLoading} // ← Skeleton نمایش میدهد
/>دسترسیپذیری نمودارها
نمودارها به تنهایی برای screen readerها قابل درک نیستند. همیشه یک خلاصه متنی ارائه دهید:
<div>
<LineChart data={data} isLoading={isLoading} />
{/* خلاصه برای screen readers */}
<p className="sr-only">
نمودار روند ذکرها در ۳۰ روز گذشته. بیشترین ذکر در تاریخ ۱۵ اسفند با ۲۳۴ مورد بوده است.
</p>
</div>بهترین روشها
انتخاب نمودار مناسب
| سوال | نمودار پیشنهادی |
|---|---|
| روند در طول زمان چیست؟ | LineChart |
| چند دسته را با هم مقایسه کنم؟ | BarChart |
| سهم هر بخش چقدر است؟ | PieChart |
| پیکهای زمانی کجاست؟ | HeatMap |
| پرتکرارترین کلمات کداماند؟ | WordCloud |
محدودیتها
- برای
PieChartبیش از ۵ بخش استفاده نکنید — خوانایی کاهش مییابد - برای
LineChartبیش از ۴ خط همزمان نمایش ندهید - همیشه
isLoadingرا هندل کنید - همیشه
sr-onlyخلاصه متنی اضافه کنید