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

পাইথনে Matplotlib দিয়ে একক পাই হাইলাইট করা পাই চার্ট আঁকা

ভূমিকা

আপনার সবচেয়ে প্রিয় চার্ট টাইপ কী? যদি এই প্রশ্নটি আপনি ম্যানেজমেন্ট বা একটি বিজনেস অ্যানালিস্টের কাছে করুন, তবে তাৎক্ষণিক উত্তর হবে পাই চার্ট! পারসেন্টেজ প্রদর্শনের জন্য এটি খুবই phổলভাব।

কীভাবে করবেন

  1. Matplotlib ইনস্টল করুন:
    pip install matplotlib
  2. Matplotlib ইম্পোর্ট করুন:
    import matplotlib.pyplot as plt
  3. অস্থায়ী ডেটা তৈরি করুন:
    tennis_stats = (('Federer', 20), ('Nadal', 20), ('Djokovic', 17), ('Murray', 3),)
  4. ডেটা প্রস্তুত করুন:
    titles = [title for player, title in tennis_stats]
    players = [player for player, title in tennis_stats]
  5. পাই চার্ট তৈরি করুন (values = titles, labels = players)।
    • autopct প্যারামিটার - ভ্যালুকে পারসেন্টেজ ফরম্যাটে দেখাতে (এক দশমিক পর্যন্ত)।
    • axis('equal') - পাই চার্টটি গোলাকার দেখানোর জন্য।
    • .show() - গ্রাফ প্রদর্শনের জন্য।

    নোট: .show() এক্সিকিউট করলে প্রোগ্রাম ব্লক হয়। উইন্ডো বন্ধ করলে প্রোগ্রাম রিজিউম হবে।

    plt.pie(titles, labels=players, autopct='%1.1f%%')
    plt.gca().axis('equal')
    plt.show()
    
  6. গ্রাফ দেখান।
  7. আরো কিছু ইন্টারেস্টিং প্যারামিটার: startangle - উইজ/পাইয়ের শুরু ঘুরিয়ে দেয়। counterclock - ডিরেকশন (ডিফল্ট True)।

একক পাই হাইলাইট করা (explode)

explode = (0, 0, 0.1, 0.0)
plt.pie(titles, labels=players, explode=explode, autopct='%1.1f%%')
plt.show()

পারসেন্টেজ বদলে আসল মান দেখানো (কাস্টম ফরম্যাটার)

অটোপিসি-তে কাস্টম ফাংশন ব্যবহার করে পারসেন্টেজের বদলে আসল টাইটল সংখ্যা দেখানো যায়।

from matplotlib.ticker import FuncFormatter

total = sum(title for player, title in tennis_stats)
values = {int(100 * title / total): title for player, title in tennis_stats}

def format_values(percent, **kwargs):
    value = values[int(percent)]
    return '{}'.format(value)

explode = (0, 0, 0.1, 0.0)
plt.pie(titles, labels=players, explode=explode, autopct=format_values)
plt.show()

সম্পূর্ণ কোড

# imports
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter

# prepare data
tennis_stats = (('Federer', 20), ('Nadal', 20), ('Djokovic', 17), ('Murray', 3),)
titles = [title for player, title in tennis_stats]
players = [player for player, title in tennis_stats]

total = sum(title for player, title in tennis_stats)
values = {int(100 * title / total): title for player, title in tennis_stats}

# custom function
def format_values(percent, **kwargs):
    value = values[int(percent)]
    return '{}'.format(value)

# explode to separate the pie/wedges
explode = (0, 0, 0.1, 0.0)
plt.pie(titles, labels=players, explode=explode, autopct=format_values)
plt.show()
  1. ম্যাটপ্লটলিব পাইথনে একক পয়েন্ট প্লট করা

  2. পাইথন ম্যাটপ্লটলিবে ৩D ডেন্সিটি ম্যাপ প্লট করা

  3. Matplotlib Python-এ পাই চার্ট কীভাবে প্রদর্শন করবেন?

  4. Python-এ Matplotlib ব্যবহার করে একই গ্রাফে ৩টি ভিন্ন ডেটাসেট প্লট করা