কম্পিউটার টিউটোরিয়াল

পাইথন - XlsxWriter দিয়ে এক্সেলে এরিয়া চার্ট প্লট করা

এরিয়া চার্ট (Area Chart) লাইন চার্টের মতোই কিন্তু লাইন এবং X-অ্যাক্সিসের মাঝপথে রঙ ভরা থাকে। এটি কিউমুলেটিভ টোটাল বা ভলিউম ওভার টাইম দেখানোর জন্য উপযোগী। স্ট্যাকড এরিয়া চার্টে একাধিক সিরিজ একে অপরের ওপর স্ট্যাক হয়।

সম্পূর্ণ উদাহরণ

import xlsxwriter

workbook = xlsxwriter.Workbook('chart_area.xlsx')
worksheet = workbook.add_worksheet()

bold = workbook.add_format({'bold': True})

headings = ['Number', 'Batch 1', 'Batch 2']
data = [
    [2, 3, 4, 5, 6, 7],
    [80, 80, 100, 60, 50, 100],
    [60, 50, 60, 20, 10, 20]
]

worksheet.write_row('A1', headings, bold)
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])

# এরিয়া চার্ট অবজেক্ট
chart1 = workbook.add_chart({'type': 'area'})

# প্রথম সিরিজ
chart1.add_series({
    'name':       '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values':     '=Sheet1!$B$2:$B$7',
})

# দ্বিতীয় সিরিজ
chart1.add_series({
    'name':       ['Sheet1', 0, 2],
    'categories': ['Sheet1', 1, 0, 6, 0],
    'values':     ['Sheet1', 1, 2, 6, 2],
})

chart1.set_title({'name': 'Results of Data Analysis'})
chart1.set_x_axis({'name': 'Test Number'})
chart1.set_y_axis({'name': 'Data Length (mm)'})
chart1.set_style(11)

worksheet.insert_chart('E2', chart1)
workbook.close()
print("এরিয়া চার্ট তৈরি হয়েছে: chart_area.xlsx")

এরিয়া চার্ট সাব-টাইপস

সাব-টাইপবিবরণপ্যারামিটার
Standard Areaসিংগল সিরিজ, বেসলাইন থেকে ফিল (ডিফল্ট){'type': 'area'}
Stacked Areaসিরিজগুলোর যোগফল (কিউমুলেটিভ){'type': 'area', 'subtype': 'stacked'}
100% Stacked Areaপ্রতিটি পয়েন্টে শতকরা ভাগ{'type': 'area', 'subtype': 'percent_stacked'}
3D Area৩D এরিয়া (দৃষ্টিনন্দন কিন্তু মিসলিডিং){'type': 'area', 'subtype': '3d'}

স্ট্যাকড এরিয়া চার্ট উদাহরণ (কিউমুলেটিভ ট্রেন্ড)

chart1 = workbook.add_chart({'type': 'area', 'subtype': 'stacked'})

chart1.add_series({
    'name': '=Sheet1!$B$1',   # Batch 1 (নিচে)
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$B$2:$B$7',
    'fill': {'color': '#4472C4'},
})
chart1.add_series({
    'name': '=Sheet1!$C$1',   # Batch 2 (ওপর)
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$C$2:$C$7',
    'fill': {'color': '#ED7D31'},
})
# টোটাল হাইট = Batch 1 + Batch 2

এরিয়া চার্ট কাস্টমাইজেশন

# ট্রান্সপারেন্সি (ওভারল্যাপিং এরিয়ার জন্য জরুরি)
chart1.add_series({
    'values': '=Sheet1!$B$2:$B$7',
    'fill': {'color': 'blue', 'transparency': 50},  # ৫০% ট্রান্সপারেন্ট
    'border': {'color': 'blue', 'width': 1.5}
})

# গ্রেডিয়েন্ট ফিল
chart1.add_series({
    'values': '=Sheet1!$B$2:$B$7',
    'gradient': {
        'colors': ['#FFFFFF', '#4472C4'],  # সাদা থেকে ব্লু
        'positions': [0, 100]
    }
})

সেরা অনুশীলন

  • ট্রান্সপারেন্সি বাধ্যতামূলক: একাধিক সিরিজ থাকলে অবশ্যই ট্রান্সপারেন্সি ব্যবহার করুন, অন্যথায় পিছনের সিরিজ লুকিয়ে যাবে।
  • স্ট্যাকড এরিয়া: টোটাল ট্রেন্ড এবং কম্পোজিশন দুইটাই দেখাতে চাইলে।
  • ১০০% স্ট্যাকড: শেয়ার/প্রপорশন ট্রেন্ড দেখাতে চাইলে (যেমন: মার্কেট শেয়ার ওভার টাইম)।
  • এড়িয়ে চলুন: ৩D এরিয়া, খুব বেশি সিরিজ (>৫), নেগেটিভ ভ্যালু (এরিয়া চার্টে নেগেটিভ হ্যান্ডলিং কনফিউজিং)।

লাইন vs এরিয়া: কখন কী?

পারামিটারলাইন চার্টএরিয়া চার্ট
ফোকাসট্রেন্ড, রেট অফ চেঞ্জভলিউম, কিউমুলেটিভ ম্যাগনিটিউড
একাধিক সিরিজস্পষ্ট পৃথক লাইনওভারল্যাপ/স্ট্যাক (ট্রান্সপারেন্সি লাগে)
নেগেটিভ ভ্যালুসহজ বোঝা যায়ভ্রান্তিকর (বেসলাইন নিচে ফিল)
  1. পাইথনে openpyxl ব্যবহার করে এক্সেলে চার্ট তৈরি করা

  2. পাইথনে xlsxwriter মডিউল ব্যবহার করে এক্সেল ফাইল তৈরি ও লেখা

  3. পাইথন XlsxWriter মডিউল দিয়ে এক্সেল শিটে চার্টশিট যোগ করা

  4. পাইথনে openpyxl ব্যবহার করে এক্সেল ফাইল পড়া ও লিখা