كيفية إنشاء الرسوم البيانية في Excel باستخدام Python

كيفية إنشاء الرسوم البيانية في Excel باستخدام Python

تحويل الرسوم البيانية الخام إلى إدراك بصري. Aspose.Cells FOSS for Python يسمح لك بإنشاء عمود، خط، شريط، ودرجات برمجة، مع السيطرة الكاملة على سلسلة البيانات، علامات الفئة، عنوان الرسم البياني، والموقع، دون الحاجة إلى Microsoft Excel.

لماذا تخلق الرسوم البيانية مع Aspose.Cells FOSS؟?

  1. لا حاجة إلى Excel: بناء الخرائط بالكامل في Python ، على أي نظام التشغيل.
  2. طريقة لكل نوع API: الاستخدام add_bar(), add_line(), add_pie(), add_area(),، وأكثر من ذلك - طريقة واحدة لكل نوع الرسم البياني.
  3. سلسلة الاسم: إعداد كل سلسلة مع name=, category_data= كلمات مفتاحية الحجة.
  4. وضع دقيق: الحدود الرسم البياني التحكم من خلال إحداثيات الخلية (top_row، left_col، bottom_roow، right_kol).

خطوة بخطوة دليل

الخطوة 1: تثبيت Aspose.Cells FOSS لـ Python

pip install aspose-cells-foss

الخطوة 2: إنشاء دفتر عمل وتسجيل البيانات

إنشاء دفتر عمل جديد وإدخال البيانات الرقمية بالإضافة إلى علامات الفئة للخلايا:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]
ws.name = "Sales Data"

##Category labels in column A (rows 2-5, leaving row 1 for a header)
ws.cells["A1"].value = "Quarter"
ws.cells["A2"].value = "Q1"
ws.cells["A3"].value = "Q2"
ws.cells["A4"].value = "Q3"
ws.cells["A5"].value = "Q4"

##Revenue series in column B
ws.cells["B1"].value = "Revenue"
ws.cells["B2"].value = 50000
ws.cells["B3"].value = 62000
ws.cells["B4"].value = 71000
ws.cells["B5"].value = 89000

##Expense series in column C
ws.cells["C1"].value = "Expenses"
ws.cells["C2"].value = 32000
ws.cells["C3"].value = 38000
ws.cells["C4"].value = 41000
ws.cells["C5"].value = 47000

الخطوة 3: إضافة خريطة عمودية

استخدام ws.charts.add_bar(top_row, left_col, bottom_row, right_col) إدخال خريطة عمودية.الطريقة تعيد كائن الخريط مباشرة:

##Insert a column chart occupying rows 7-22, columns 0-7
chart = ws.charts.add_bar(6, 0, 22, 7)

مؤشرات الصفوف والعمود هي صفرية.


الخطوة 4: إعداد سلسلة البيانات

إضافة كل سلسلة من البيانات باستخدام chart.n_series.add() مع كلمات مفتاحية :

##Add Revenue series
chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue")

##Add Expenses series
chart.n_series.add("C2:C5", category_data="A2:A5", name="Expenses")

وَالْمُتَّقِينَ category_data الحجة تحدد نطاق الخلايا لعلامات المحور x. name ويدل على أن السلسلة هي العلامة الأسطورية.


الخطوة 5: إعداد عنوان الرسم البياني وبيانات الفئة

قم بتعيين عنوان الرسم البياني كسلسلة مسطحة:

chart.title = "Quarterly Sales vs Expenses"
chart.category_data = "A2:A5"   # x-axis labels at chart level
chart.show_legend = True
chart.legend_position = "bottom"

الخطوة 6: حفظ الكتاب

workbook.save("sales_chart.xlsx")
print("Workbook with chart saved.")

نموذج الرسم البياني الكامل:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Data
labels = ["Q1", "Q2", "Q3", "Q4"]
revenue = [50000, 62000, 71000, 89000]
expenses = [32000, 38000, 41000, 47000]

ws.cells["A1"].value = "Quarter"
ws.cells["B1"].value = "Revenue"
ws.cells["C1"].value = "Expenses"

for i, (label, rev, exp) in enumerate(zip(labels, revenue, expenses), start=2):
    ws.cells[f"A{i}"].value = label
    ws.cells[f"B{i}"].value = rev
    ws.cells[f"C{i}"].value = exp

chart = ws.charts.add_bar(6, 0, 22, 7)
chart.title = "Quarterly Sales vs Expenses"
chart.category_data = "A2:A5"
chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue")
chart.n_series.add("C2:C5", category_data="A2:A5", name="Expenses")
chart.show_legend = True
chart.legend_position = "bottom"

workbook.save("quarterly_chart.xlsx")

الخطوة 7: إنشاء خط الرسم البياني

نفس النموذج يعمل على add_line():

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
revenue = [42000, 47500, 53000, 49000, 61000, 68000]

ws.cells["A1"].value = "Month"
ws.cells["B1"].value = "Revenue"

for i, (m, r) in enumerate(zip(months, revenue), start=2):
    ws.cells[f"A{i}"].value = m
    ws.cells[f"B{i}"].value = r

chart = ws.charts.add_line(8, 0, 24, 8)
chart.title = "Monthly Revenue Trend"
chart.category_data = "A2:A7"
chart.n_series.add("B2:B7", category_data="A2:A7", name="Revenue")
chart.show_legend = True

workbook.save("trend_chart.xlsx")

مشكلات و تصحيحات مشتركة

1. Chart appears blank or empty

سبب: نطاق البيانات التي تم نقلها إلى n_series.add() لا يحتوي على قيم، أو شريط نطاق الخلية غير صحيح. تصحيح: تحقق من نطاق الخلايا يتطابق مع بياناتك. ws.cells["B2"].value لا هو None.

2. Category labels not showing on x-axis

سبب: chart.category_data لم يتم تعيين، أو نقطة نطاق إلى الخلايا الفارغة. تصحيح: مجموعة chart.category_data = "A2:A5" حيث تحتوي العمود A على صفوف العلامة التجارية الخاصة بك.

3. Chart position overlaps data

سبب: يرتبط السلسلة في add_bar() تداول مع منطقة البيانات. تصحيح: وضع الرسم البياني أدناه من البيانات: ws.charts.add_bar(data_last_row + 2, 0, data_last_row + 18, 7).

4. AttributeError: 'ChartCollection' object has no attribute 'add'

سبب: يستخدم مكتبة FOSS API من الطريقة إلى النوع ، لا add(ChartType.COLUMN, ...). تصحيح: الاستخدام ws.charts.add_bar(...), ws.charts.add_line(...), ws.charts.add_pie(...),أو ws.charts.add_area(...).


الأسئلة المتكررة

ما هي أنواع الرسوم البيانية التي يتم دعمها؟?

استخدام add_bar(), add_line(), add_pie(), add_area(),و ، و add_stock() بالنسبة لأكثر الأنواع شيوعا.هذه الخمسة لديها دعم كامل لترتيب XML.تحقق من ChartCollection فئة قائمة كاملة من المتاحة add_* أساليب .

هل يمكنني إنشاء مخطوطات في ملف Excel الحالي؟?

نعم، قم بتحميل الكتاب مع Workbook("existing.xlsx"), الوصول إلى ورقة الهدف, وإضافة الرسم البياني باستخدام المناسب ws.charts.add_*() طريقة .

كيف أضع عنوان الرسم البياني؟?

إعطاء شريط مسطح: chart.title = "My Chart Title".لا يوجد .text الممتلكات الفرعية: العنوان هو السلسلة نفسها.

هل هذا النهج متوافق مع الباندا؟?

نعم اكتب قيم DataFrame في الخلايا في دائرة ثم أضف الرسم البياني فوق هذا النطاق البيانات.


الموارد ذات الصلة :

 العربية