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

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

কলাম চার্ট (Column Chart) ক্যাটেগরিক্যাল ডেটা তুলনার জন্য সবচেয়ে জনপ্রিয় চার্ট। প্রতিটি ক্যাটেগরি একটি উল্লম্ব বার (vertical bar) দিয়ে প্রকাশ করা হয়, যার উচ্চতা মানকে ইঙ্গিত করে। XlsxWriter দিয়ে কলাম চার্ট তৈরির উদাহরণ।

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

import xlsxwriter

workbook = xlsxwriter.Workbook('chart_column.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': 'column'})

# প্রথম সিরিজ
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_column.xlsx")

কলাম চার্ট সাব-টাইপস

সাব-টাইপবিবরণপ্যারামিটার
Clustered Columnসাইড-বাই-সাইড বার (ডিফল্ট){'type': 'column'}
Stacked Columnস্ট্যাকড বার (যোগফল){'type': 'column', 'subtype': 'stacked'}
100% Stacked Columnশতকরা স্ট্যাকড{'type': 'column', 'subtype': 'percent_stacked'}
3D Clustered Column৩D ক্লাস্টারড{'type': 'column', 'subtype': '3d'}
3D Stacked Column৩D স্ট্যাকড{'type': 'column', 'subtype': '3d_stacked'}
3D 100% Stacked৩D শতকরা স্ট্যাকড{'type': 'column', 'subtype': '3d_percent_stacked'}

কলাম চার্ট কাস্টমাইজেশন

# গ্যাপ উইড্থ (বারগুলোর মাঝের দূরত্ব)
chart1.set_gap(50)  # ডিফল্ট 150, কম = বড় বার, বেশি = স্লিম বার

# ওভারল্যাপ (স্ট্যাকড নয়, ক্লাস্টারডে ব্যবহারী)
chart1.set_overlap(10)  # -100 থেকে 100, পজিটিভ = ওভারল্যাপ

# ডেটা লেবেল
chart1.add_series({
    'values': '=Sheet1!$B$2:$B$7',
    'data_labels': {'value': True, 'position': 'outside_end'}
})

# প্যাটার্ন ফিল (প্রিন্ট-ফ্রেন্ডলি)
chart1.add_series({
    'values': '=Sheet1!$B$2:$B$7',
    'pattern': {
        'pattern': 'percent_25',  # 'solid', 'percent_25', 'horizontal', 'vertical'
        'fg_color': 'blue',
        'bg_color': 'white'
    }
})

কলাম vs বার চার্ট

ফিচারকলাম চার্টবার চার্ট
অরিয়েন্টেশনউল্লম্ব (Vertical)লম্ব (Horizontal)
X-অ্যাক্সিসক্যাটেগরিভ্যালু
Y-অ্যাক্সিসভ্যালুক্যাটেগরি
উপযোগীকম ক্যাটেগরি, টাইম সিরিজলম্ব ক্যাটেগরি নাম, র‍্যাঙ্কিং

সেরা অনুশীলন

  • কলাম চার্টে ক্যাটেগরি সংখ্যা ১০-১২ এর নিচে রাখুন (অন্যথায় ক্লাটার্ড হয়)।
  • স্ট্যাকড কলাম ব্যবহার করুন যখন পার্ট-টু-হোল সম্পর্ক দেখাতে চান।
  • ৩D কলাম এড়িয়ে চলুন—এটি ডেটা মিসলিড করতে পারে।
  • নেগেটিভ ভ্যালু থাকলে কলাম চার্ট অটোমেটিক্যালি নিচে যাবে।
  1. পাইথনে openpyxl ব্যবহার করে এক্সেলে চার্ট তৈরি করা

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

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

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