📊 مميز

Nivo

مكتبة رسوم بيانية React غنية بمكونات declarative (Rich Declarative Data Visualization)

(4/5)
👁️ 4 مشاهدة
📅 02 Jul 2026
🌐 عام

مستوى الخبرة المطلوب:

⚡ متوسط 🚀 محترف
🔗 زيارة الموقع الرسمي
4
تقييم المستخدمين
التصنيف 📊 Charts
المشاهدات 4
تاريخ الإضافة 02/07/2026
آخر تحديث 02/07/2026

📖 الوصف

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

🔄 البدائل

أدوات بديلة يمكنك استخدامها

Recharts
Visx
Victory
D3
ECharts

💻 مثال على الاستخدام

كيفية استخدام هذه الأداة

Example Code
// 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

قد يعجبك أيضاً