পরিচয়..
আপনার সবচেয়ে প্রিয় চার্ট টাইপ কি? আপনি যদি এই প্রশ্নটি ব্যবস্থাপনা বা ব্যবসায়িক বিশ্লেষককে জিজ্ঞাসা করেন, তাৎক্ষণিক উত্তর পাই চার্ট! এটি শতাংশ উপস্থাপনের একটি খুব সাধারণ উপায়।
কিভাবে করবেন..
1. কমান্ড অনুসরণ করে matplotlib ইনস্টল করুন।
pip install matplotlib
2. ম্যাটপ্লটলিব আমদানি করুন
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. প্লেয়ারের নাম হিসাবে শিরোনাম এবং লেবেল হিসাবে মান সহ পাই চার্ট তৈরি করুন৷
autopct প্যারামিটার - মানটিকে ফরম্যাট করতে যাতে এটি একটি একক দশমিক স্থানে শতাংশ হিসাবে প্রদর্শন করে। axis('equals')- পাই চার্টটি গোলাকার দেখাবে তা নিশ্চিত করতে। .show - ফলাফল গ্রাফ প্রদর্শন করতে।
দ্রষ্টব্য- এক্সিকিউটিং .show প্রোগ্রামের এক্সিকিউশন ব্লক করে। আপনি উইন্ডোটি বন্ধ করলে প্রোগ্রামটি পুনরায় শুরু হবে৷
plt.pie(titles, labels=players, autopct='%1.1f%%')
plt.gca().axis('equal')
(-1.1000000175619362, 1.1000000072592333, -1.1090350248729983, 1.100430247887797)

6.গ্রাফটি দেখান৷
৷plt.show()
7. পাই/সেগুলির সাথে খেলার জন্য কয়েকটি আকর্ষণীয় পরামিতি রয়েছে৷ startangle - wedges/pies এর শুরু ঘোরানো।
কাউন্টারক্লক - আপনি যে দিকটি সেটআপ করতে চান, ডিফল্ট হল সত্য৷
plt.pie(titles, labels=players, startangle=60, counterclock=False,autopct='%1.1f%%') plt.show()

8. এখন আমার মত কিছু মানুষের জন্য শতাংশ মানে কিছুই না. মনে রাখবেন আউটপুট গ্রাফটি এমন কাউকে পাঠানো হয়েছে যার কাছে আপনার কোডের গভীরে লুকিয়ে থাকা মানগুলির কোনও ধারণা নেই। সুতরাং শতাংশের পরিবর্তে, যা স্পষ্টতই পাই এর বিভাজন যেভাবে আমরা প্রকৃত শিরোনাম দেখাতে পারি তার থেকে স্ব-ব্যাখ্যামূলক?.
ওয়েল, এটা একটু কঠিন কারণ আপনাকে একটি কাস্টম ফাংশন লিখতে হবে। নিচে দেখুন।
শতাংশ হিসাবে কী সহ একটি অভিধান তৈরি করতে আমি একটি কাস্টম ফাংশন তৈরি করব - format_values, যাতে আমরা উল্লেখিত মান পুনরুদ্ধার করতে পারি৷
উদাহরণ
from matplotlib.ticker import FuncFormatter
total = sum(title for player, title in tennis_stats)
print(total)
values = {int(100 * title / total): title for player, title in tennis_stats}
print(values)
def format_values(percent, **kwargs):
value = values[int(percent)]
return '{}'.format(value)
# explode to seperate the pie/wedges.
explode = (0, 0, 0.1, 0.0)
plt.pie(titles, labels=players, explode=explode, autopct=format_values)
plt.show()
# the more the value the more farther it will be seperated.
explode = (0.3, 0.2, 0.0, 0.0)
plt.pie(titles, labels=players, explode=explode, autopct=format_values)
60
{33: 20, 28: 17, 5: 3}

([<matplotlib.patches.Wedge at 0x2279cf8dd00>, <matplotlib.patches.Wedge at 0x2279cf9b1f0>, <matplotlib.patches.Wedge at 0x2279cf9b8b0>, <matplotlib.patches.Wedge at 0x2279cf9bf70>], [Text(0.6999999621611965, 1.2124355871444568, 'Federer'), Text(-1.2999999999999945, -1.2171478395895002e-07, 'Nadal'), Text(0.39420486628845763, -1.0269384223966398, 'Djokovic'), Text(1.086457194390738, -0.17207778693546258, 'Murray')], [Text(0.44999997567505484, 0.7794228774500078, '20'), Text(-0.7999999999999966, -7.490140551320001e-08, '20'), Text(0.2150208361573405, -0.5601482303981671, '17'), Text(0.5926130151222206, -0.09386061105570685, '3')])

অবশেষে, সবকিছু একত্রিত করা।
উদাহরণ
# 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 seperate the pie/wedges.
explode = (0, 0, 0.1, 0.0)
plt.pie(titles, labels=players, explode=explode, autopct=format_values)
plt.show()
