বস্তুর নাম
ম্যাটপ্লটলিব দৃ strongly়ভাবে অবজেক্ট ওরিয়েন্টেড এবং এর প্রধান বিষয়গুলি হ'ল চিত্র এবং অক্ষগুলি (আমি নামটি axesকিছুটা বিভ্রান্তিকর মনে করি তবে সম্ভবত এটি কেবল আমার)।
আপনি চিত্রটিকে ক্যানভাস হিসাবে ভাবতে পারেন , যার মধ্যে আপনি সাধারণত মাত্রা এবং সম্ভবত উদাহরণস্বরূপ, পটভূমির রঙ ইত্যাদি উল্লেখ করেন You আপনি ক্যানভাস, চিত্রটি মূলত দুটি উপায়ে ব্যবহার করেন, এটিতে অন্যান্য জিনিস রেখে (বেশিরভাগ অক্ষ , তবে এছাড়াও পাঠ্য লেবেল ইত্যাদি) এবং এর সামগ্রীগুলি এতে সংরক্ষণ করে savefig।
আপনি একটি মনে করতে পারেন অক্ষ সুইস আর্মি নাইফ কেমন, একটি সুবিধাজনক বস্তু অফার একটি টুল (যেমন হিসাবে .plot, .scatter, .histইত্যাদি) সব কিছুর জন্য, বেশিরভাগ। আপনি বিভিন্ন, বিভিন্ন পদ্ধতি ব্যবহার করে একটি চিত্রের ভিতরে একটি , দুটি, ... অনেকগুলি অক্ষ রাখতে পারেন ।
pltইন্টারফেস
PLT পদ্ধতিগত ইন্টারফেস মূলত অনুকরণমূলক ম্যাটল্যাব ™ ইন্টারফেসে উন্নত ছিল কিন্তু সত্যিই অবজেক্ট ওরিয়েন্টেড ইন্টারফেস থেকে ভিন্ন নয়, এমনকি আপনি যদি প্রধান বস্তু একটি সরাসরি রেফারেন্স না (অর্থাত, একটি চিত্রে এবং একটি অক্ষ ) এই বস্তু স্বয়ংক্রিয়ভাবে ইনস্ট্যান্ট হয় এবং প্রতিটি প্লট পদ্ধতি মূলত অন্তর্নিহিত মৌলিক অবজেক্টগুলির একটি পদ্ধতির কলটিতে অনুবাদ করা হয়: যেমন, plt.plot()a hidden_axes.plotএবং a plt.savefigহয় a hidden_figure.savefig।
প্রতিটি মুহুর্তে আপনি এই লুকানো বস্তুগুলি ব্যবহার করে plt.gcfএবং একটি হ্যান্ডেল রাখতে পারেন plt.gcaএবং প্লট নেমস্পেসের কোনও অবজেক্টের কোনও পদ্ধতিতে কোনও পোর্ট করা না থাকলে এটি কখনও কখনও প্রয়োজনীয় হয় ।
আমি যুক্ত করতে চাই যে প্লট নেমস্পেসে বিভিন্ন উপায়ে, চিত্র এবং অক্ষগুলিতে ইনস্ট্যান্ট করার জন্য বেশ কয়েকটি সুবিধাজনক পদ্ধতি রয়েছে ।
আপনার উদাহরণ
1 ম উপায়
plt.plot(x, y)
এখানে আপনি কেবল প্লট ইন্টারফেস ব্যবহার করেন , আপনি প্রতিটি চিত্রের মধ্যে কেবল একটি অক্ষ ব্যবহার করতে পারেন , তবে আপনি যখন আপনার ডেটা অনুসন্ধান করতে যাচ্ছেন তখন এটি আপনি চান, একটি দ্রুত রেসিপি যা কাজটি সম্পন্ন করে ...
২ য় উপায়
ax = plt.subplot()
ax.plot(x, y)
এখানে আপনি নিজের অক্ষ বস্তুটির একটি নাম (এবং একটি হ্যান্ডেল) দেওয়ার জন্য প্লট নেমস্পেসে একটি সুবিধামত পদ্ধতি ব্যবহার করেন তবে বিটিডব্লুতে একটি লুকানো চিত্রও রয়েছে । আপনি পরে প্লাস্টিকের জন্য অক্ষগুলি অবজেক্টটি প্লট করতে, হিস্টোগ্রাম ইত্যাদি তৈরি করতে, প্লট ইন্টারফেসের সাহায্যে যা করতে পারেন তা করতে পারেন তবে এর সমস্ত বৈশিষ্ট্য অ্যাক্সেস করতে এবং বৃহত্তর স্বাধীনতার সাথে এগুলি সংশোধন করতে পারেন।
3 য় উপায়
figure = plt.figure()
new_plot = figure.add_subplot(111)
new_plot.plot(x, y)
এখানে আপনি প্লট নেমস্পেসে সুবিধাবদ্ধ পদ্ধতি ব্যবহার করে কোনও চিত্র ফিরিয়ে আনতে শুরু করেন এবং পরে আপনি কেবল অবজেক্ট ওরিয়েন্টেড ইন্টারফেস ব্যবহার করেন।
প্লট সুবিধার পদ্ধতিটি ( matplotlib.figure.Figure) কে বাইপাস করা সম্ভব তবে আপনাকে আরও ভাল ইন্টারেক্টিভ অভিজ্ঞতার জন্য চিত্রটি টুইঙ্ক করতে হবে (সর্বোপরি, এটি একটি সুবিধার পদ্ধতি)।
ব্যক্তিগত সুপারিশ
আমি খালি সুপারিশ plt.plot, plt.scatterএকটি ইন্টারেক্টিভ অধিবেশন প্রেক্ষাপটে, সম্ভবত ব্যবহার IPython তার সঙ্গে %matplotlibজাদু কমান্ড, এবং এছাড়াও একটি অনুসন্ধানমূলক Jupyter নোটবুক প্রেক্ষাপটে।
অন্যদিকে অবজেক্ট ওরিয়েন্টেড অ্যাপ্রোচ, প্লাস কয়েকটি plt
সুবিধামত পদ্ধতি, যাবার উপায়
- আপনার যদি একবারে সবার জন্য একবারে সমাধান করার জন্য স্থায়ী সমস্যাটি তৈরি হয়ে থাকে যাতে সূক্ষ্ম সুরযুক্ত সাবপ্লটগুলির কাস্টমাইজড বিন্যাস হয়,
- আপনি যদি লিখে থাকেন এমন কোনও প্রোগ্রামের UI- এ ম্যাটপ্লটলিব এম্বেড করতে চান।
এই চরমের মাঝে একটি বৃহত্তর ধূসর অঞ্চল রয়েছে এবং আপনি যদি আমাকে জিজ্ঞাসা করেন তবে আমি কেবল "এটি নির্ভর করে" বলব ...