Create Arabic data visualizations with proper RTL formatting and localization
description_ar
إنشاء تصورات بيانات عربية مع تنسيق RTL وترجمة صحيحة
category
developer
language
ar
dialect
msa
rtl
true
platform_claude
true
platform_gpt
true
platform_qwen
true
platform_jais
true
platform_falcon
true
platform_allam
true
compliance
[]
version
1.0.0
author
salman-shaikh
contributor_volunteer
true
الهدف (Purpose)
يساعد هذه المهارة في إنشاء تصورات بيانات (Data Visualizations) باللغة العربية مع دعم كامل لاتجاه RTL، والأرقام العربية المشرقية، والترجمة الصحيحة للمصطلحات التقنية، وتنسيقات التواريخ العربية.
متى تستخدم هذه المهارة (When to Use)
استخدم هذه المهارة عندما تحتاج إلى:
إنشاء رسوم بيانية بالعربية
تصميم لوحات معلومات (Dashboards) عربية
تحويل أرقام غربية إلى مشرقية
تنسيق تواريخ هجرية
تعريب مصطلحات تقنية في الرسوم
تعليمات النموذج (Model Instructions)
أنت خبير في تصور البيانات وتعريب الواجهات. عند إنشاء التصور:
مبادئ التصور العربي
١. اتجاه RTL: دعم كامل لليمين لليسار
٢. الأرقام: استخدام المشرقية (٠١٢٣) أو الغربية حسب السياق
٣. الخطوط: خطوط عربية واضحة ومناسبة
٤. التنسيق: تواريخ هجرية وعملة ريال/درهم
الأدوات المدعومة
Matplotlib/Seaborn (Python)
Plotly/Dash
Tableau
Power BI
D3.js
Chart.js
مثال (Example)
الطلب:
أنشئ رسم بياني للمبيعات بالعربية.
النتيجة المتوقعة:
# تصور البيانات بالعربية
## Arabic Data Visualization Guide
---
## ١. إعداد البيئة
### ١.١ المكتبات المطلوبة
```python
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import pandas as pd
from arabic_reshaper import ArabicReshaper
from bidi.algorithm import get_display
١.٢ تكوين الخطوط العربية
# إعداد الخط العربي
ARABIC_FONT = 'Arial'# أو 'Noto Sans Arabic'
FONT_SIZE = 14
plt.rcParams['font.family'] = ARABIC_FONT
plt.rcParams['font.size'] = FONT_SIZE
plt.rcParams['axes.unicode_minus'] = False
٢. معالجة النصوص العربية
٢.١ إعادة تشكيل النص
from arabic_reshaper import ArabicReshaper
from bidi.algorithm import get_display
def ():
reshaper = ArabicReshaper()
reshaped = reshaper.reshape(text)
get_display(reshaped)
text =
formatted = format_arabic_text(text)
format_arabic_text
text
"""إعادة تشكيل النص العربي للعرض الصحيح"""
return
# مثال
"المبيعات الشهرية"
# النتيجة: "المبيعات الشهرية" (بشكل صحيح)
٢.٢ تحويل الأرقام
defconvert_to_arabic_indic(number):
"""تحويل الأرقام الغربية إلى مشرقية"""
arabic_indic_digits = str.maketrans('0123456789', '٠١٢٣٤٥٦٧٨٩')
returnstr(number).translate(arabic_indic_digits)
defconvert_to_western(number):
"""تحويل الأرقام المشرقية إلى غربية"""
western_digits = str.maketrans('٠١٢٣٤٥٦٧٨٩', '0123456789')
returnstr(number).translate(western_digits)
# أمثلةprint(convert_to_arabic_indic(1234)) # ١٢٣٤print(convert_to_western('٥٦٧')) # 567
٣. رسوم Matplotlib بالعربية
٣.١ رسم عمودي
import matplotlib.pyplot as plt
# البيانات
categories = ['الرياض', 'جدة', 'الدمام', 'مكة', 'المدينة']
values = [450, 380, 290, 520, 310]
# معالجة النصوص
categories_ar = [format_arabic_text(c) for c in categories]
values_label = [convert_to_arabic_indic(v) for v in values]
# إنشاء الرسم
fig, ax = plt.subplots(figsize=(10, 6))
bars = ax.bar(categories_ar, values, color=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd'])
# تنسيق المحاور
ax.set_xlabel(format_arabic_text('المدن'), fontsize=14, fontname=ARABIC_FONT)
ax.set_ylabel(format_arabic_text('المبيعات (ألف ريال)'), fontsize=14, fontname=ARABIC_FONT)
ax.set_title(format_arabic_text('المبيعات حسب المدينة - ٢٠٢٥'), fontsize=16, fontname=ARABIC_FONT, pad=20)
# إضافة القيم على الأعمدةfor bar, val inzip(bars, values):
height = bar.get_height()
ax.text(bar.get_x() + bar.get_width()/2., height,
f'{convert_to_arabic_indic(val)}',
ha='center', va='bottom', fontsize=12, fontname=ARABIC_FONT)
# عكس الاتجاه لـ RTL
ax.invert_xaxis()
plt.tight_layout()
plt.savefig('arabic_bar_chart.png', dpi=300, bbox_inches='tight')
plt.show()
٣.٢ رسم دائري
# البيانات
labels = ['إلكترونيات', 'ملابس', 'منزل', 'رياضة', 'أخرى']
sizes = [35, 25, 20, 15, 5]
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99', '#c2c2f0']
# معالجة النصوص
labels_ar = [format_arabic_text(l) for l in labels]
sizes_label = [convert_to_arabic_indic(s) for s in sizes]
# إنشاء الرسم الدائري
fig, ax = plt.subplots(figsize=(8, 8))
wedges, texts, autotexts = ax.pie(sizes, labels=labels_ar, colors=colors,
autopct=lambda pct: f'{convert_to_arabic_indic(int(pct))}%',
startangle=90, counterclock=False)
# تنسيق الخطfor text in texts + autotexts:
text.set_fontname(ARABIC_FONT)
text.set_fontsize(12)
ax.set_title(format_arabic_text('توزيع المبيعات حسب الفئة'), fontsize=16, fontname=ARABIC_FONT, pad=20)
plt.savefig('arabic_pie_chart.png', dpi=300, bbox_inches='tight')
plt.show()
٣.٣ رسم خطي
import numpy as np
# البيانات - الأشهر الهجرية
months = ['محرم', 'صفر', 'ربيع الأول', 'ربيع الثاني', 'جمادى الأولى', 'جمادى الآخرة',
'رجب', 'شعبان', 'رمضان', 'شوال', 'ذو القعدة', 'ذو الحجة']
sales = [120, 135, 145, 138, 155, 162, 148, 170, 220, 165, 158, 175]
# معالجة النصوص
months_ar = [format_arabic_text(m) for m in months]
sales_ar = [convert_to_arabic_indic(s) for s in sales]
# إنشاء الرسم
fig, ax = plt.subplots(figsize=(14, 6))
ax.plot(months_ar, sales, marker='o', linewidth=2, markersize=8, color='#2e86ab')
ax.fill_between(months_ar, sales, alpha=0.3, color='#2e86ab')
# تنسيق
ax.set_xlabel(format_arabic_text('الشهر الهجري'), fontsize=14, fontname=ARABIC_FONT)
ax.set_ylabel(format_arabic_text('المبيعات (ألف ريال)'), fontsize=14, fontname=ARABIC_FONT)
ax.set_title(format_arabic_text('المبيعات الشهرية - العام الهجري ١٤٤٦'), fontsize=16, fontname=ARABIC_FONT, pad=20)
# تدوير التسميات
plt.xticks(rotation=45, ha='right', fontname=ARABIC_FONT)
# إضافة شبكة
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('arabic_line_chart.png', dpi=300, bbox_inches='tight')
plt.show()
from hijri_converter import convert
from datetime import datetime
defformat_hijri_date(gregorian_date):
"""تحويل التاريخ الميلادي إلى هجري"""
h = convert.from_gregorian(
gregorian_date.year,
gregorian_date.month,
gregorian_date.day
)
returnf"{h.hijri_day()}{h.hijri_month_name()}{h.hijri_year()}هـ"# مثال
gregorian = datetime(2025, 1, 15)
hijri = format_hijri_date(gregorian)
# النتيجة: "١٥ رجب ١٤٤٦هـ"
٨. قائمة التحقق
قبل النشر
☐ جميع النصوص العربية معادة التشكيل بشكل صحيح
☐ الأرقام بالترسيق المطلوب (مشرقية/غربية)
☐ الاتجاه RTL مطبق
☐ الخطوط العربية واضحة
☐ التواريخ بالتنسيق الهجري (إذا لزم)
☐ العملة بالترميز المحلي (ر.س، د.إ)
☐ العناوين واضحة وموجزة
☐ الألوان مناسبة ومتباينة
☐ الرسم قابل للقراءة على جميع الأجهزة