পাইথন ব্যবহার করে কীভাবে দুটি প্লট পাশাপাশি করা যায়?


94

আমি ম্যাটপ্ল্লোলিবের নীচের উদাহরণটি পেয়েছি:

import numpy as np
import matplotlib.pyplot as plt


x1 = np.linspace(0.0, 5.0)
x2 = np.linspace(0.0, 2.0)

y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)

plt.subplot(2, 1, 1)
plt.plot(x1, y1, 'ko-')
plt.title('A tale of 2 subplots')
plt.ylabel('Damped oscillation')


plt.subplot(2, 1, 2)
plt.plot(x2, y2, 'r.-')
plt.xlabel('time (s)')
plt.ylabel('Undamped')

plt.show()

আমার প্রশ্ন: প্লট পাশাপাশি পাশাপাশি করার জন্য আমার কী দরকার?

উত্তর:


148

আপনার সাবপ্লট সেটিংস এতে পরিবর্তন করুন:

plt.subplot(1, 2, 1)

...

plt.subplot(1, 2, 2)

এর জন্য প্যারামিটারগুলি হ'ল subplot: সারি সংখ্যা, কলামগুলির সংখ্যা এবং আপনি বর্তমানে যে সাবপ্ল্লট করছেন। এর 1, 2, 1অর্থ "একটি 1-সারি, 2-কলামের চিত্র: প্রথম সাবপ্লট এ যান।" তারপরে 1, 2, 2"" একটি 1-সারি, 2-কলামের চিত্র: দ্বিতীয় উপপ্লটতে যান। "

আপনি বর্তমানে একটি 2-সারি, 1-কলাম (এটি, অন্যটির উপরে একটি) লেআউট চাইছেন। পরিবর্তে আপনাকে একটি 1-সারি, 2-কলাম লেআউট জিজ্ঞাসা করতে হবে। আপনি যখন করবেন, ফলাফলটি হবে:

পাশাপাশি প্লট

সাবপ্লটগুলির ওভারল্যাপটি হ্রাস করার জন্য, আপনি একটিতে লাথি মারতে চাইতে পারেন:

plt.tight_layout()

শো আগে। ফলন:

পাশের প্লট কাছাকাছি


45

এই পৃষ্ঠাটি দেখুন: http://matplotlib.org/example/pylab_example/subplots_demo.html

plt.subplotsঅনুরূপ. আমি মনে করি এটি চিত্রের পরামিতিগুলি সেট করা সহজ since প্রথম দুটি আর্গুমেন্ট লেআউটটিকে সংজ্ঞায়িত করে (আপনার ক্ষেত্রে 1 সারি, 2 কলাম), এবং অন্যান্য পরামিতি ফিগার আকারের মতো বৈশিষ্ট্যগুলি পরিবর্তন করে:

import numpy as np
import matplotlib.pyplot as plt

x1 = np.linspace(0.0, 5.0)
x2 = np.linspace(0.0, 2.0)
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)

fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(5, 3))
axes[0].plot(x1, y1)
axes[1].plot(x2, y2)
fig.tight_layout()

এখানে চিত্র বর্ণনা লিখুন


4
প্লটকে আরও প্রশস্ত ও উচ্চতর করার কোনও উপায় আছে কি?
Heißenberg93

আমি প্রশংসিত plt.xlim / ylim বলতে চাই না
Heißenberg93

4
আমি ব্যবহার করার পরামর্শ দিতে হবে plt.subplots। আপনি figsizeচিত্রটির আকার নির্ধারণ করতে যুক্তিটি নির্দিষ্ট করতে পারেন । হিসাবে হিসাবে plt.subplots(1, 2, figsize=(20, 4))। অন্যথা, আপনি প্রথম চিত্রে এবং চিত্র আকার নির্ধারণ করতে পারে: plt.figure(figsize=(20, 4))
ব্যস্তবিয়ার

কিছু কারণে, যখন আমি "প্লট.সেসফিগ ('.... পিএনজি')" সাবপ্লটটি সংরক্ষণ করার চেষ্টা করি তখন আমি একটি ফাঁকা তথ্য পাই। আমি শুরুতে ঠিক একই কোডটি সরবরাহ করছি (আমি কেবল plt.figure যুক্ত করেছি (ডুমুর আকার = (7, 3)))।
Heißenberg93

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