একই আইপিথন নোটবুক কক্ষে একাধিক চার্ট তৈরি করুন


88

আমি আমার আইপিথন নোটবুকটি দিয়ে শুরু করেছি

ipython notebook --pylab inline

এটি একটি ঘরে আমার কোড

df['korisnika'].plot()
df['osiguranika'].plot()

এটি সূক্ষ্মভাবে কাজ করছে, এটি দুটি লাইন আঁকবে, তবে একই চার্টে।

আমি প্রতিটি লাইন পৃথক চার্টে আঁকতে চাই। চার্টগুলি একে অপরের পাশে নয়, একে অপরের পাশে থাকলে এটি দুর্দান্ত হবে।

আমি জানি যে আমি পরের ঘরে দ্বিতীয় লাইনটি রাখতে পারি এবং তারপরে আমি দুটি চার্ট পেতে পারি। তবে আমি চার্টগুলি একে অপরের কাছাকাছি চাই, কারণ তারা একই লজিকাল ইউনিটের প্রতিনিধিত্ব করে।

উত্তর:


89

প্রথমে একাধিক অক্ষ তৈরি করুন এবং পান্ডাস প্লট ফাংশনে এগুলি দিন:

fig, axs = plt.subplots(1,2)

df['korisnika'].plot(ax=axs[0])
df['osiguranika'].plot(ax=axs[1])

এটি এখনও আপনাকে 1 চিত্র দেয়, তবে একে অপরের পাশে দুটি পৃথক প্লট রয়েছে।


4
এটি কাজ করছে। এখন আমি চিত্রের আকার পরিবর্তন করতে চাই না। আমি ডুমুর, অক্ষ = প্লট.সুপ্লটস (1,2, ডুমুর আকার = (15, 5)) দিয়ে এটি করতে পারি। পিক্সেলগুলিতে চিত্রের আকার সেট করার কোনও উপায় আছে?
ওয়েবঅরকোড '

4
ডুমুর আকার ব্যবহার প্রকৃতপক্ষে উপায়, ইঞ্চি আকার thats। কত পিক্সেল হবে তা ডিপিআই-র উপর নির্ভর করে, যা স্ক্রিনে প্রদর্শনের জন্য স্থির করা হয়েছে। তবে সংরক্ষণের জন্য এটি ডিপিআই কীওয়ার্ড যুক্ত করে সেট করা যায়।
রুটার ক্যাসিস

4
এটি একেবারেই সঠিক নয় যে অনি স্ক্রিন প্রদর্শনের জন্য ডিপিআই স্থির করা হয়েছে (ভাল এটি আছে এবং এটি নেই)। আইপিথন তাদের পিক্সেল আকারের উপর ভিত্তি করে চিত্রগুলি প্রদর্শন করে এবং সেই পিক্সেল আকারটি ম্যাটপ্ল্লোলিবতে savefig.dpiকনফিগারেশনের মাধ্যমে ইঞ্চি আকারের অঙ্কের দ্বারা নির্ধারিত হয় । ইনলাইন ফিগারগুলি ফাইল লেখার মতো একই সেফফিগ পাথ ব্যবহার করে।
minrk

এটি নির্দেশ করার জন্য ধন্যবাদ, আমি জানতাম না যে এটি এমনভাবে কাজ করেছে। চিত্র dpi অ্যাকাউন্টে (পাশাপাশি) বিবেচনা করা হলেও এটি আরও সুবিধাজনক হবে না, যেহেতু চিত্র তৈরির সময় সেট করা সহজ। Savefig.dpi এর জন্য আমি ছাড়া আর কোনও উপায় জানি না mpl.rcParams['savefig.dpi'] = 120। ডিসপ্লে প্রদর্শনের জন্য অনেক জায়গায় একটি কীওয়ার্ড রয়েছে, যেমন plt.figure(dpi=120), তবে এখন তা উপেক্ষা করা হয়, সুতরাং এটি সম্পর্কে আমার ভুল ধারণা স্থির করা হচ্ছে।
রুটার ক্যাসিস

102

আপনি প্রতিটি প্লটের পরে শো () ফাংশনটিতেও কল করতে পারেন। যেমন

   plt.plot(a)
   plt.show()
   plt.plot(b)
   plt.show()

4
দুর্দান্ত, তবে কীভাবে প্লট চিত্রের অবস্থান সেট করা যায় (২,২) বা (1,2)?
পাইথোনার

4
এই বিকল্পের সাথে, প্লটগুলি অগত্যা একের পরে এক প্রদর্শিত হয়। সামগ্রিক বিন্যাসে আরও নিয়ন্ত্রণের জন্য, pyplot.subplots()যাওয়ার উপায়।
এরিক হে লেবিগোট

4
আমি লিঙ্কটি সরিয়েছি।
টুবলিপে

12

এটার মতো কিছু:

import matplotlib.pyplot as plt
... code for plot 1 ...
plt.show()
... code for plot 2...
plt.show()

মনে রাখবেন যে আপনি seabornপ্লট করার জন্য প্যাকেজটি ব্যবহার করতে পারলে এটিও কাজ করবে :

import matplotlib.pyplot as plt
import seaborn as sns
sns.barplot(... code for plot 1 ...) # plot 1
plt.show()
sns.barplot(... code for plot 2 ...) # plot 2
plt.show()

11

অন্য উপায়, বিভিন্ন জন্য। যদিও এটি অন্যদের তুলনায় কিছুটা কম নমনীয়। দুর্ভাগ্যক্রমে, গ্রাফগুলি পাশাপাশি পাশাপাশি একের ওপরে প্রদর্শিত হবে যা আপনি আপনার মূল প্রশ্নে অনুরোধ করেছিলেন। তবে এটি খুব সংক্ষিপ্ত।

df.plot(subplots=True)

যদি ডেটাফ্রেমে দুটি সিরিজের বেশি থাকে এবং আপনি কেবলমাত্র এই দুটি প্লট করতে চান তবে আপনাকে এটির সাথে প্রতিস্থাপন dfকরতে হবে df[['korisnika','osiguranika']]


2

আমি জানি না এটি নতুন কার্যকারিতা কিনা, তবে এটি পৃথক পরিসংখ্যান নিয়ে প্লট করবে:

df.plot(y='korisnika')
df.plot(y='osiguranika')

যখন এটি একই চিত্রে চক্রান্ত করবে: (ঠিক যেমন অপের কোডের মতো)

df.plot(y=['korisnika','osiguranika'])

আমি এই প্রশ্নটি খুঁজে পেয়েছি কারণ আমি পূর্বের পদ্ধতিটি ব্যবহার করছিলাম এবং তাদের একই চিত্রটিতে চক্রান্ত করার ইচ্ছা ছিল, সুতরাং আপনার প্রশ্নটি আসলে আমার উত্তর ছিল।

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