العمل مع الرسوم البيانية
نظرة عامة
Aspose.Cells FOSS uses a method-per-chart-type API. Instead of a generic add(ChartType.X, ...) كل نوع من الرسوم البيانية لديه طريقة خاصة به على ورقة العمل من charts جمع :
| طريقة | نوع الخريطة |
|---|---|
ws.charts.add_bar(top_row, left_col, bottom_row, right_col) | عمود المجموعات (خريطة البار) |
ws.charts.add_line(top_row, left_col, bottom_row, right_col) | الخطوط |
ws.charts.add_pie(top_row, left_col, bottom_row, right_col) | بيري |
ws.charts.add_area(top_row, left_col, bottom_row, right_col) | المنطقة |
جميع المعلمات الأربعة الوضعية تصف المنطقة المستطيلة في الورقة حيث سيتم إدراج الرسم البياني.السلسلة والعمود المؤشرات هي صفر القاعدة.كل واحد منهم طريقة العودة إلى A Chart الكائن الذي تقوم بتعيينه قبل حفظه.
الحد من : فقط أنواع LINE، BAR، PIE، AREA، و STOCK خريطة يمكن حفظها إلى XLSX.
wb.save()مع كتاب عمل يحتوي على أي نوع آخر من الرسم البياني (على سبيل المثال، SCATTER، WATERFALL، RADAR، TREEMAP، HISTOGRAM) سوف يرفعNotImplementedError.
إضافة خريطة عمودية
يكتب المثال أدناه مجموعة بيانات صغيرة من الإيرادات حسب المنتج ثم يضيف جدول عمود يقع تحت البيانات.
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##--- Data ---
ws.cells["A1"].value = "Product"
ws.cells["B1"].value = "Revenue"
products = ["Widget A", "Widget B", "Widget C", "Widget D", "Widget E"]
revenues = [12_500, 18_200, 9_800, 21_400, 15_600]
for i, (product, revenue) in enumerate(zip(products, revenues), start=2):
ws.cells[f"A{i}"].value = product
ws.cells[f"B{i}"].value = revenue
##--- Chart (rows 7–22, columns A–H, all zero-based) ---
##top_row=6, left_col=0, bottom_row=22, right_col=7
chart = ws.charts.add_bar(6, 0, 22, 7)
chart.title = "Revenue by Product"
chart.n_series.add("B2:B6", category_data="A2:A6", name="Revenue (USD)")
chart.show_legend = True
chart.legend_position = "bottom"
workbook.save("column_chart.xlsx")
print("Saved column_chart.xlsx")وتحتل البيانات صفوف 1—6 (الصفوف 0â €”5 على أساس الصفر)، وبالتالي top_row=6 مكانها المكان الرسم البياني مباشرة أدناه دون إزالة البيانات.
إضافة خط الرسم البياني
الرسم البياني للخط يعمل بشكل جيد لإظهار الاتجاهات مع مرور الوقت. مماثلة لـ add_bar * لا يتغير سوى اسم الطريقة.
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##--- Monthly trend data ---
ws.cells["A1"].value = "Month"
ws.cells["B1"].value = "Page Views"
ws.cells["C1"].value = "Conversions"
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
page_views = [4_200, 5_100, 4_800, 6_300, 7_100, 6_800]
conversions = [ 210, 255, 230, 340, 390, 360]
for i, (month, pv, cv) in enumerate(zip(months, page_views, conversions), start=2):
ws.cells[f"A{i}"].value = month
ws.cells[f"B{i}"].value = pv
ws.cells[f"C{i}"].value = cv
##--- Line chart below the data ---
chart = ws.charts.add_line(8, 0, 24, 8)
chart.title = "Monthly Website Metrics"
chart.n_series.add("B2:B7", category_data="A2:A7", name="Page Views")
chart.n_series.add("C2:C7", category_data="A2:A7", name="Conversions")
chart.show_legend = True
chart.legend_position = "bottom"
workbook.save("line_chart.xlsx")
print("Saved line_chart.xlsx")العنوان الأصلي والأسطورة
إعداد عنوان الرسم البياني عن طريق تخصيص سلك مسطح مباشرة إلى chart.title.- من الممتلكات تقبل أ str لا تحاول الوصول إلى ممتلكات فرعية مثل: .title.text,ما لا يوجد في هذه المكتبة.
##Correct
chart.title = "Quarterly Sales"
##Wrong — raises AttributeError
##chart.title.text = "Quarterly Sales"يتم التحكم في المرآة والموقع من قبل اثنين من الخصائص:
chart.show_legend = True # display the legend
chart.legend_position = "bottom" # "bottom", "top", "left", "right"لكي يختبئ الأسطورة كاملة، وضعت chart.show_legend = False.- من legend_position القيمة تجاهل عندما يخفي الأسطورة.
سلسلة البيانات التكوين
استخدام chart.n_series.add() إرفاق البيانات إلى خريطة.موافقة كل الحجج مثل كلمات مفتاحية لتجنب الارتباك في الأوامر:
chart.n_series.add("B2:B6", category_data="A2:A6", name="Revenue")يمكنك إضافة سلسلة متعددة إلى الرسم البياني الواحد عن طريق الاتصال n_series.add المزيد كل مكالمة يضيف سلسلة جديدة:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Headers
ws.cells["A1"].value = "Quarter"
ws.cells["B1"].value = "North"
ws.cells["C1"].value = "South"
ws.cells["D1"].value = "East"
data = [
("Q1", 8_400, 6_100, 7_200),
("Q2", 9_200, 7_400, 8_100),
("Q3", 10_500, 8_900, 9_600),
("Q4", 11_800, 9_300, 10_200),
]
for i, row in enumerate(data, start=2):
ws.cells[f"A{i}"].value = row[0]
ws.cells[f"B{i}"].value = row[1]
ws.cells[f"C{i}"].value = row[2]
ws.cells[f"D{i}"].value = row[3]
chart = ws.charts.add_bar(6, 0, 22, 8)
chart.title = "Regional Sales by Quarter"
chart.n_series.add("B2:B5", category_data="A2:A5", name="North")
chart.n_series.add("C2:C5", category_data="A2:A5", name="South")
chart.n_series.add("D2:D5", category_data="A2:A5", name="East")
chart.show_legend = True
chart.legend_position = "bottom"
workbook.save("multi_series_chart.xlsx")
print("Saved multi_series_chart.xlsx")Category بيانات
يمكن تعيين علامات الفئة على مستوى الرسم البياني أو على المستوى الفردي من السلسلة.
بيانات الفئة المستوى الرسمي ينطبق على جميع السلسلة كإعداد:
chart.category_data = "A2:A5"بيانات المستوى السلسلي (من خلال category_data كلمة مفتاحية الحجة إلى n_series.add( ) يزيد عن إعداد مستوى الرسم البياني لهذا السلسلة المحددة:
chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue")عندما تشارك كل سلسلة نفس نطاق الفئة ، فإن الإعداد chart.category_data عندما تكون السلسلة ذات فئات مختلفة ، فإن “السلسلات” هي, اثنين من مجموعات البيانات مع فترات زمنية مختلفة — استخدام الحجة الكلمات الرئيسية لكل سلسلة بدلاً من ذلك.
الرسم البياني للموقع
أربعة معلمات موقفية لكل add_* طريقة تحديد الحدود المستطيل في الورقة، وقياسها في صف صفر القائم ومؤشرات الأعمدة:
add_bar(top_row, left_col, bottom_row, right_col)| المعايير | معنى |
|---|---|
top_row | مؤشر صفر القائم على الصف الأول الذي يحتل الخريطة |
left_col | مؤشر القاعدة الصفرية في الأعمدة الأيسر |
bottom_row | مؤشر صفر القائم على السلسلة الأخيرة التي احتلتها الخريطة |
right_col | مؤشر الصفر الأيمن من أعلى الأعمدة |
نموذج شائع هو وضع الرسم البياني مباشرة تحت البيانات.إذا كانت بياناتك تنتهي في Excel صف 6 (مؤشر الصف 5 على أساس الصفر) ، تبدأ الرسم البياني عند top_row=6:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Data in rows 1–5 (zero-based 0–4)
labels = ["Alpha", "Beta", "Gamma", "Delta", "Epsilon"]
values = [30, 45, 28, 60, 52]
ws.cells["A1"].value = "Category"
ws.cells["B1"].value = "Score"
for i, (label, val) in enumerate(zip(labels, values), start=2):
ws.cells[f"A{i}"].value = label
ws.cells[f"B{i}"].value = val
##Data ends at zero-based row 5 (Excel row 6).
##Place chart from row 6 to row 22, columns A–H (0–7).
chart = ws.charts.add_bar(6, 0, 22, 7)
chart.title = "Category Scores"
chart.n_series.add("B2:B6", category_data="A2:A6", name="Score")
chart.show_legend = False
workbook.save("positioned_chart.xlsx")
print("Saved positioned_chart.xlsx")جعل الرسم البياني طويلًا بما فيه الكفاية للقراءة: ارتفاع 15 صفًّا على الأقل (bottom_row - top_roow >= 15) وعرض 6 أعمدة على أقل هو نقطة انطلاق معقولة.
الأخطاء الشائعة
| الخطأ | حقاً | لماذا |
|---|---|---|
ws.charts.add(ChartType.COLUMN, ...) | ws.charts.add_bar(...) | لا تتصل ws.charts.add(ChartType.X, ...) من أجل النوع غير المدعوم - سوف يرتفع NotImplementedError 11 من 16 نوعاً من الرسوم البيانية.استخدام add_bar(), add_line(), add_pie(), add_area(),أو add_stock() بدلاً من ذلك. |
chart.title.text = "My Chart" | chart.title = "My Chart" | chart.title هو صفة ذاتية سلكية، وليس كائن مع .text الممتلكات الفرعية . |
chart.n_series.add("B2:B5", "A2:A5", "Revenue") | chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue") | يجب أن يتم نقل المعلمات الثانية والثالثة كحجة مفتاحية لتجنب الشفافية. |
chart = ws.charts.add_bar(0, 0, 15, 7) (تدفق البيانات على النحو) | مكان top_row أدناه آخر صف بيانات | الرسم البياني الذي يغطي البيانات يخفي القيم ويسبب ترتيب مزعج. |
chart.legend_position = "bottom" بدون chart.show_legend = True | مجموعة chart.show_legend = True الأولى | legend_position لا تأثير عندما show_legend هو False. |
انظر أيضا
- إشارة API: الدرجة الكاملة و الوثائق الطريقة ل
aspose.cells_foss - قاعدة المعرفة: المهام الموجهة كيف-to دليل
- نظرة عامة على المنتج: خصائص و قدرات ملخص
- بدء التشغيل / التثبيت:• تثبيت و إعداد Pip
- مدونة: Python Excel Chart Tutorial: خطوة بخطوة دليل إنشاء الرسم البياني