যেহেতু এখানে অন্যান্য উত্তরগুলি দাবি করে যে s
চিহ্নিতকারীটির ক্ষেত্রকে চিহ্নিত করে, আমি এই উত্তরটি যুক্ত করছি এটি পরিষ্কার করার জন্য যে এটি প্রয়োজনীয় তা নয়।
পয়েন্টগুলিতে আকার ^ 2
যুক্তি s
মধ্যে plt.scatter
-এর মানে markersize**2
। যেমন ডকুমেন্টেশন বলে
s
: স্কেলার বা অ্যারে_লাইক, আকৃতি (এন,),
পয়েন্ট in 2 এ size চ্ছিক আকার। ডিফল্ট হ'ল rcParams ['lines.markersize '] ** 2।
এটি আক্ষরিকভাবে নেওয়া যেতে পারে। এক্স পয়েন্ট বড় আকারের একটি মার্কার পাওয়ার জন্য আপনাকে সেই সংখ্যাটি বর্গাকার করতে হবে এবং s
যুক্তিটি দিতে হবে ।
সুতরাং একটি লাইন প্লটের চিহ্নিতকারী আকার এবং স্ক্যাটার আকারের যুক্তির মধ্যে সম্পর্কটি বর্গক্ষেত্র। 10 পয়েন্টের আকারের প্লট মার্কার হিসাবে একই আকারের একটি স্ক্যাটার মার্কার তৈরি করতে আপনি কল করতে পারেন scatter( .., s=100)
।
import matplotlib.pyplot as plt
fig,ax = plt.subplots()
ax.plot([0],[0], marker="o", markersize=10)
ax.plot([0.07,0.93],[0,0], linewidth=10)
ax.scatter([1],[0], s=100)
ax.plot([0],[1], marker="o", markersize=22)
ax.plot([0.14,0.86],[1,1], linewidth=22)
ax.scatter([1],[1], s=22**2)
plt.show()
"অঞ্চল" এর সাথে সংযোগ
সুতরাং s
প্যারামিটারের ক্ষেত্রে অন্যান্য উত্তরগুলি এমনকি ডকুমেন্টেশন কেন "অঞ্চল" সম্পর্কে কথা বলে ?
অবশ্যই পয়েন্টের ইউনিটগুলি ** 2 এরিয়া ইউনিট।
- বর্গাকার চিহ্নিতকরণের বিশেষ ক্ষেত্রে, চিহ্নিতকারীর
marker="s"
ক্ষেত্রটি হ'ল সরাসরি এর মানs
প্যারামিটারের ।
- একটি বৃত্তের জন্য, বৃত্তের ক্ষেত্রফল
area = pi/4*s
।
- অন্যান্য চিহ্নিতকারীদের জন্য এমনকি চিহ্নিতকারীটির ক্ষেত্রের সাথে কোনও সুস্পষ্ট সম্পর্ক নাও থাকতে পারে।
সব ক্ষেত্রে তবে চিহ্নিতকারীর ক্ষেত্রটি s
প্যারামিটারের সাথে সমানুপাতিক । এটি বেশিরভাগ ক্ষেত্রে এটি সত্যই না হলেও এটি "অঞ্চল" বলার অনুপ্রেরণা।
কিছু পরিমাণের আকারে স্ক্যাটার চিহ্নিতকারীগুলির আকার নির্দিষ্ট করে যা চিহ্নিতকারীর ক্ষেত্রের সাথে আনুপাতিক হয় তাই এটি বোঝা যায় কারণ এটি চিহ্নিতকারীর ক্ষেত্র যা তার পাশের দৈর্ঘ্য বা ব্যাসের চেয়ে বিভিন্ন প্যাচগুলির তুলনা করার সময় উপলব্ধি করা হয়। অর্থাত্ অন্তর্নিহিত পরিমাণ দ্বিগুণ করার ক্ষেত্রে চিহ্নিতকারীটির ক্ষেত্র দ্বিগুণ করা উচিত।
পয়েন্ট কি?
এখনও অবধি স্ক্যাটার চিহ্নিতকারীটির আকার কী বোঝায় তার উত্তর পয়েন্টগুলির এককগুলিতে দেওয়া হয়। পয়েন্টগুলি প্রায়শই টাইপোগ্রাফিতে ব্যবহৃত হয়, যেখানে ফন্টগুলি পয়েন্টগুলিতে নির্দিষ্ট করা হয়। এছাড়াও লাইনউইথগুলি প্রায়শই পয়েন্টগুলিতে নির্দিষ্ট করা হয়। ম্যাটপ্ল্লোলিবের পয়েন্টগুলির স্ট্যান্ডার্ড আকারটি প্রতি ইঞ্চি 72 পয়েন্ট (পিপিআই) - 1 পয়েন্ট তাই 1/72 ইঞ্চি।
পয়েন্টগুলির পরিবর্তে পিক্সেলগুলিতে আকারগুলি নির্দিষ্ট করতে সক্ষম হতে দরকারী be চিত্র dpi পাশাপাশি 72, এক পয়েন্ট এক পিক্সেল। যদি চিত্র dpi আলাদা হয় (ম্যাটপ্লোটিলিব ডিফল্ট হয় fig.dpi=100
),
1 point == fig.dpi/72. pixels
পয়েন্টগুলিতে বিচ্ছুরণকারী চিহ্নিতকারীর আকারটি বিভিন্ন চিত্র dpi এর জন্য পৃথক দেখায়, কেউ 10 থেকে 10 পিক্সেল ^ 2 মার্কার তৈরি করতে পারে, যা সর্বদা একই পিক্সেলের আওতায় থাকবে:
import matplotlib.pyplot as plt
for dpi in [72,100,144]:
fig,ax = plt.subplots(figsize=(1.5,2), dpi=dpi)
ax.set_title("fig.dpi={}".format(dpi))
ax.set_ylim(-3,3)
ax.set_xlim(-2,2)
ax.scatter([0],[1], s=10**2,
marker="s", linewidth=0, label="100 points^2")
ax.scatter([1],[1], s=(10*72./fig.dpi)**2,
marker="s", linewidth=0, label="100 pixels^2")
ax.legend(loc=8,framealpha=1, fontsize=8)
fig.savefig("fig{}.png".format(dpi), bbox_inches="tight")
plt.show()
আপনি যদি ডেটা ইউনিটগুলিতে কোনও ছড়িয়ে ছিটিয়ে আগ্রহী হন তবে এই উত্তরটি দেখুন ।