ম্যাটপ্ল্লোব অবজেক্ট-ওরিয়েন্টেড ইন্টারফেস ব্যবহার করে সমুদ্র সৈকতের সাথে প্লট করা


103

আমি matplotlibদৃOP়ভাবে ওওপি শৈলীতে ব্যবহার পছন্দ করি :

f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(...)
axarr[1].plot(...)

এটি একাধিক পরিসংখ্যান এবং সাবপ্লটগুলি ট্র্যাক করা সহজ করে তোলে।

প্রশ্ন: এভাবে কীভাবে সামুদ্রিক ব্যবহার করবেন? অথবা, কীভাবে এই উদাহরণটিকে ওওপি স্টাইলে বদলাবেন ? কোনটি বা এটির জন্য প্লট করা seabornপ্লটিং ফাংশনগুলি কীভাবে বলতে হবে?lmplotFigureAxes


1
সম্পর্কিত: এই সমস্যা এবং একটি সম্ভাব্য কাজের জন্য এই উত্তর , যা একটি সমুদ্র সৈকত চিত্র তৈরি করতে এবং পরে সমস্ত অক্ষকে সাবপ্লল্ট গ্রিডে স্থানান্তর করতে দেয়।
ImportanceOfBeingErnest

উত্তর:


228

এটি আপনি সাম্রাজ্য ফাংশনটি ব্যবহার করছেন তার উপর কিছুটা নির্ভর করে।

সমুদ্র সৈকতে প্লট করার কাজগুলি বিস্তৃতভাবে দুটি শ্রেণিতে বিভক্ত

  • "অক্ষ-স্তরের" ফাংশন সহ regplot, boxplot, kdeplot, এবং আরও অনেক কিছু
  • "চিত্র-স্তরের" ফাংশন সহ lmplot, factorplot, jointplotএবং এক বা দুই অন্যদের

প্রথম গোষ্ঠীটি একটি সুস্পষ্ট axযুক্তি নিয়ে এবং একটি ফেরত দিয়ে চিহ্নিত করা হয়Axes বস্তু । যেমনটি প্রস্তাবিত হয়, আপনি তাদের Axesকাছে পাস করে এগুলিকে "অবজেক্ট ওরিয়েন্টেড" স্টাইলে ব্যবহার করতে পারেন :

f, (ax1, ax2) = plt.subplots(2)
sns.regplot(x, y, ax=ax1)
sns.kdeplot(x, ax=ax2)

অক্ষ-স্তরের ক্রিয়াকলাপগুলি কেবল অঙ্কন করবে Axesএবং অন্যথায় চিত্রের সাথে গোলযোগ করবে না, তাই তারা কোনও বস্তু-ভিত্তিক ম্যাটপ্লোটিব স্ক্রিপ্টে পুরোপুরি সুখে সহাবস্থান করতে পারে।

ফাংশনগুলির দ্বিতীয় গ্রুপ (চিত্র-স্তর) দ্বারা পৃথক করা হয় যে ফলস্বরূপ প্লটটি বেশ কয়েকটি অক্ষকে অন্তর্ভুক্ত করতে পারে যা সর্বদা "অর্থবহ" উপায়ে সংগঠিত হয়। এর অর্থ হল যে ফাংশনগুলিতে চিত্রের উপর সম্পূর্ণ নিয়ন্ত্রণ থাকা দরকার, সুতরাং প্লট করা সম্ভব নয়, বলুন, একটিlmplot ইতিমধ্যে বিদ্যমান একটির উপরে নয়। ফাংশনটি কল করা সর্বদা একটি চিত্রের সূচনা করে এবং এটি অঙ্কন করে এমন নির্দিষ্ট প্লটের জন্য সেট আপ করে।

যাইহোক, একবার আপনি কল করার পরে lmplot, এটি টাইপের কোনও বস্তু ফিরে আসবে FacetGrid। এই অবজেক্টটির ফলস্বরূপ প্লটের অপারেটিংয়ের জন্য কিছু পদ্ধতি রয়েছে যা প্লটের কাঠামো সম্পর্কে কিছুটা জানে। এটি অন্তর্নিহিত চিত্র FacetGrid.figএবং FacetGrid.axesআর্গুমেন্টগুলিতে অক্ষগুলির অ্যারেও প্রকাশ করে । jointplotফাংশন অনুরূপ, কিন্তু এটা একটি ব্যবহার JointGridঅবজেক্ট। সুতরাং আপনি এখনও এই ফাংশনগুলি একটি অবজেক্ট-ভিত্তিক প্রসঙ্গে ব্যবহার করতে পারেন, তবে আপনার সমস্ত কাস্টমাইজেশন আপনাকে ফাংশনটি বলার পরে আসতে হবে।


এটি সত্যিই সহায়ক ছিল। আমার উত্তরটি এখানে দেখুন: stackoverflow.com/questions/27019079/…
ডেনসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.