موقع د. عزيز الجعيد
  • الرئـيـسـية

  • الأقسام

    • علم البيانات والذكاء الإصطناعي

    • ذكاء الأعمال

    • لغة البرمجة بايثون

    • مقالات متنوعـة

    • لغة البرمجة آر R

    • الإحــــــصــــــاء

    • البيانات المفتوحة

  • عـنــي

  • تواصل معي

علم البيانات والذكاء الاصطناعي

  • الرئـيـسـية

  • الأقسام

    • علم البيانات والذكاء الإصطناعي

    • ذكاء الأعمال

    • لغة البرمجة بايثون

    • مقالات متنوعـة

    • لغة البرمجة آر R

    • الإحــــــصــــــاء

    • البيانات المفتوحة

  • عـنــي

  • تواصل معي

حل مشكلة اللغة العربية في الرسوم البيانية في بايثون Python

04/12/2020 | لغة البرمجة بايثون | شارك بتعليقك

عند استخدام بيانات تحوي مسميات باللغة العربية في بايثون فأنها تعرض بشكل معكوس ومفصل خصوصاً في الرسوم البيانية. في هذا المقال سوف نستعرض بالخطوات كيفية التعامل مع هذه المشكلة وذلك من خلال الخطوات التالية:

اولاً: تحميل الحزم التالية:

In:
!python -m pip install arabic_reshaper
!python -m pip install python-bidi

ثانيا: استخدام الكود التالي:

In:
from arabic_reshaper import arabic_reshaper
from bidi.algorithm import get_display

ثالثاً: تعريف الدالة التالية:

In:
def f(x):
    out=get_display( arabic_reshaper.reshape(x))
    return(out)

مثال(1): سوف نقوم بتصوير مجموعة بيانات تحوي مسميات عربية كما يلي:

In:
import matplotlib.pyplot as plt
labels = f('متزوج'), f('أعزب')
sizes = [80, 14]
colors = ['gold', 'lightcoral']
explode = (0.2, 0)

plt.pie(sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=True)
plt.title(f('الحالة الإجتماعية للعملاء'))
 
plt.axis('equal')
plt.show()

والذي يعطي النتيجة التالية:

ملاحظة: يمكن تحسين الخط من خلال تحميل الخط majalla ثم استخدام الكود التالي:

In:
import os
from matplotlib import font_manager as fm, rcParams
fpath = os.path.join(rcParams["datapath"], "C:\\Desktop\\majalla.ttf")
prop = fm.FontProperties(fname=fpath,size=20)

حيث يتم تغيير موقع الخط في الكود اعلاه (الموضح بالأزرق) ليتناسب مع موقع الخط على جهازك. ثم بعد ذلك نستخدم الكود:

In:
labels = f('متزوج'), f('أعزب')
sizes = [80, 14]
colors = ['gold', 'lightcoral']
explode = (0.2, 0)

plt.pie(sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=True,textprops={'fontproperties':prop})
plt.title(f('الحالة الإجتماعية للعملاء'),fontproperties=prop)
 
plt.axis('equal')
plt.show()

والذي يعطي النتيجة:

مثال(2): نفرض أن لدينا البيانات mydata والتي تحوي بيانات عربية وبالتالي لتمثيلها سوف يتم اتباع الخطوات التالية:

1. استيراد البيانات كما يلي:

In:
import pandas as pd
mydata = pd.read_csv("C:\\Desktop\\mydata.csv")
mydata
Out:
name mark
أحمد	3
محمد	5
خالد	6
علي	4
عبدالله	9

2. تطبيق الدالة المعرفة f على عمود الأسم (name) كما يلي:

In:
mydata['name']=mydata['name'].apply(f)

3. استخدام الكود التالي:

In:
mydata.plot.bar(x='name',y='mark',legend=False)
plt.ylabel(f('الدرجة من 10'),fontproperties=prop)
plt.xlabel(f('الطلاب'),fontproperties=prop)
plt.xticks(fontproperties=prop)
plt.show()

والذي يعطي النتيجة:

جميع الحقوق الفكرية لهذا المقال محفوظة © موقع د. عزيز، يمنع إعادة نشره في موقع آخر

مقالات ذات صلة:

  • مقدمة في البايثون Python

    بايثون هي لغة برمجة متعددة الأغراض، تعمل على عدد من المنصات مثل ويندوز (Windows) و ماك (Mac OS X) و لينوكس (Linux).... مقدمة في البايثون Python
    اقرأ المزيد
  • قراءة ملفات البيانات في بايثون Python

    في هذا المقال سوف نستعرض كيف يمكن قراءة ملفات البيانات بأنواعها المختلفة باستخدام لغة البرمجة بايثون. في البداية نحتاج... قراءة ملفات البيانات في بايثون Python
    اقرأ المزيد
  • دوال القائمة (list) في بايثون Python

    تعتبر القائمة (list) احد انواع هياكل البيانات شائعة الاستخدام في في لغة البرمجة بايثون والتي يمكن أن تحوي انواع مختلفة... دوال القائمة (list) في بايثون Python
    اقرأ المزيد

شارك بتعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *


The reCAPTCHA verification period has expired. Please reload the page.

د. عزيز عوض الله الجعيد
دكتوراه في الإحصاء، عالم بيانات، مبرمج، مهتم في التحليل المتقدم، والبيانات الضخمة والذكاء الاصطناعي، لمزيد من المعلومات أضغط هنا

  • YouTube
جميع الحقوق محفوظة © موقع د. عزيز