📋 محتويات الصفحة
📖 الوصف
Nivo هي مجموعة من المكونات لبناء تطبيقات Dataviz مذهلة باستخدام React و d3. توفر أكثر من 15 رسم بياني قابل للتخصيص للغاية مع declarative API. تم تصميمها لتكون مرنة وجميلة مع animations سلسة ودعم server-side rendering. كل رسم بياني في Nivo يأتي مع playground تفاعلي يسمح بتجربة الخيارات مباشرة قبل ال...
🎯 يستخدم في
مجالات استخدام هذه الأداة
Dashboards تحليلية معقدة
تصورات البيانات التفاعلية
Financial visualizations
Hierarchical data displays
Portfolio/Data visualization projects
✨ المميزات
أبرز مميزات هذه الأداة
15+ نوع رسم بياني
Declarative API جميلة
SVG
Canvas
HTML rendering
Responsive charts
Server-side rendering
Animated transitions
Playground تفاعلي لكل رسم
Customizable للغاية
TypeScript types
Rich component ecosystem
Community-driven
⚠️ العيوب
نقاط يجب مراعاتها
React only
Learning curve متوسط
Bundle size كبير (220KB+)
Performance مع بيانات ضخمة متوسطة
بعض الأنواع تحتاج معرفة d3
Documentation أحياناً تكون غير كاملة
Less flexible than raw D3
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
// Line Chart
import { ResponsiveLine, Line } from '@nivo/line';
const data = [
{
id: 'المبيعات',
data: [
{ x: 'يناير', y: 45 },
{ x: 'فبراير', y: 90 },
{ x: 'مارس', y: 150 },
{ x: 'أبريل', y: 220 },
{ x: 'مايو', y: 180 },
]
}
];
function SalesLine() {
return (
<ResponsiveLine
data={data}
margin={{ top: 50, right: 110, bottom: 50, left: 60 }}
xScale={{ type: 'point' }}
yScale={{ type: 'linear', min: 0, max: 'auto', stacked: false }}
curve="monotoneX"
axisTop={null}
axisRight={null}
axisBottom={{
tickSize: 5,
tickPadding: 5,
tickRotation: 0,
legend: 'الشهر',
legendOffset: 36,
legendPosition: 'middle'
}}
axisLeft={{
tickSize: 5,
tickPadding: 5,
tickRotation: 0,
legend: 'القيمة',
legendOffset: -40,
legendPosition: 'middle'
}}
colors={{ scheme: 'nivo' }}
pointSize={10}
pointColor={{ theme: 'background' }}
pointBorderWidth={2}
pointBorderColor={{ from: 'serieColor' }}
useMesh={true}
legends={[
{
anchor: 'bottom-right',
direction: 'column',
translateX: 100,
itemWidth: 80,
itemHeight: 20,
}
]}
/>
);
}
// Sunburst Chart (Hierarchical data)
import { ResponsiveSunburst } from '@nivo/sunburst';
const hierarchicalData = {
name: 'الشركة',
children: [
{
name: 'المبيعات',
children: [
{ name: 'إدراجي', value: 100 },
{ name: 'تكراري', value: 80 }
]
},
{
name: 'التسويق',
children: [
{ name: 'محتوى', value: 60 },
{ name: 'إعلانات', value: 90 }
]
}
]
};
function DepartmentSunburst() {
return (
<ResponsiveSunburst
data={hierarchicalData}
margin={{ top: 10, right: 10, bottom: 10, left: 10 }}
id="name"
value="value"
cornerRadius={2}
arcLabelsSkipAngle={10}
arcLabelsTextColor={{ from: 'color', modifiers: [['darker', 2]] }}
colors={{ scheme: 'nivo' }}
/>
);
}
📚 أدوات أخرى في Charts
قد يعجبك أيضاً
ApexCharts
⭐مكتبة رسوم بيانية JavaScript تفاعلية حديثة (Modern Interactive Charts)
Chart.js
⭐مكتبة رسوم بيانية JavaScript بسيطة وخفيفة (Simple yet Flexible JS Charts)
D3
⭐مكتبة معالجة البيانات وتصويرها منخفضة المستوى (Low-Level Data Visualization Library)
ECharts
⭐مكتبة رسوم بيانية JavaScript مفتوحة المصدر قوية (Powerful Interactive Charting Library)
Highcharts
⭐مكتبة رسوم بيانية JavaScript احترافية (Professional JavaScript Charts)
Plotly
⭐مكتبة رسوم بيانية علمية متقدمة (Scientific & Advanced Charts)