আপনি কীভাবে ম্যাটপ্ল্লিটিব দিয়ে অঙ্কিত চিত্রের আকার পরিবর্তন করবেন?
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
-> fig.set_size_inches(11,8)
একবার এবং সবসময় বিভ্রান্তি এড়াতে।
আপনি কীভাবে ম্যাটপ্ল্লিটিব দিয়ে অঙ্কিত চিত্রের আকার পরিবর্তন করবেন?
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
-> fig.set_size_inches(11,8)
একবার এবং সবসময় বিভ্রান্তি এড়াতে।
উত্তর:
চিত্র আপনাকে কল স্বাক্ষর জানায়:
from matplotlib.pyplot import figure
figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')
figure(figsize=(1,1))
একটি ইঞ্চি বাই ইঞ্চি চিত্র তৈরি করবে যা আপনি বাই ডিপিআই যুক্তি না দিলে 80-বাই-80 পিক্সেল হবে।
show()
একটি পপআপ উইন্ডো তৈরি করতে চান figure(num=1,...)
তবে আপনাকে কোনও প্লট করার আগে আপনাকে কল করতে হবে - পাইপ্লট / পাইলব কিছু আঁকামাত্রই একটি চিত্র তৈরি করে, এবং পপআপটির আকার প্রদর্শিত হবে এই মুহূর্তে স্থির করা।
যদি আপনি ইতিমধ্যে চিত্রটি তৈরি করে ফেলেছেন তবে আপনি দ্রুত এটি করতে পারেন:
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig('test2png.png', dpi=100)
বিদ্যমান গুই উইন্ডোতে আকার পরিবর্তন পরিবর্তনের জন্য ate forward=True
fig.set_size_inches(18.5, 10.5, forward=True)
imshow
, এখন আমি এই কোডটি ব্যবহার করে প্লট করার জায়গার চারপাশের স্থানটি সরিয়ে দেওয়ার পরে plt.subplots_adjust(left=0.0, right=1.0, bottom=0.0, top=1.0)
।
fig.set_dpi(100)
।
অসমর্থনের নোট:
অনুযায়ী সরকারী Matplotlib নির্দেশিকা , ব্যবহারpylab
মডিউল আর বাঞ্ছনীয়।matplotlib.pyplot
পরিবর্তে এই অন্যান্য উত্তর দ্বারা বর্ণিত হিসাবে, পরিবর্তে মডিউল ব্যবহার বিবেচনা করুন ।
নিম্নলিখিতটি কাজ করে বলে মনে হচ্ছে:
from pylab import rcParams
rcParams['figure.figsize'] = 5, 10
এটি চিত্রটির প্রস্থ 5 ইঞ্চি এবং এর উচ্চতা 10 ইঞ্চি করে ।
চিত্র শ্রেণিটি এর পরে এটির একটি আর্গুমেন্টের জন্য এটি ডিফল্ট মান হিসাবে ব্যবহার করে।
fig.set_size_inches(18.5, 10.5, forward=True)
কাজ করছে.
আপনি যদি চিত্রের পরিবেশ ব্যবহার না করে আকার পরিবর্তন করতে চান তবে এই কর্মপরিকল্পনাও রয়েছে। আপনি যদি plt.plot()
উদাহরণস্বরূপ ব্যবহার করছেন তবে আপনি প্রস্থ এবং উচ্চতা সহ একটি টিপল সেট করতে পারেন।
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)
আপনি যখন ইনলাইন প্লট করবেন (যেমন আইপিথন নোটবুক সহ) এটি খুব দরকারী। যেহেতু @ আসামায়ার লক্ষ্য করেছেন যে এই বিবৃতিটি আমদানির বিবৃতিগুলির একই কক্ষে না রাখাই ভাল।
figsize
Tuple ইঞ্চি গ্রহণ যাতে আপনি সেন্টিমিটার আপনি তাদের 2,54 দ্বারা বিভক্ত করা আছে এটি সেট করতে চান তাহলে একটি চেহারা আছে এই প্রশ্নের ।
plt.rcParams["figure.figsize"] = (20,3)
একটি অতিরিক্ত কক্ষে কল করতে হবে । আমি যখন এটিকে আমদানির বিবৃতি হিসাবে একই কক্ষে বলি, তখন তা উপেক্ষা হয়ে যায়।
নিম্নলিখিত হিসাবে একটি সহজ কোড চেষ্টা করুন:
from matplotlib import pyplot as plt
plt.figure(figsize=(1,1))
x = [1,2,3]
plt.plot(x, x)
plt.show()
প্লট করার আগে আপনাকে চিত্রের আকার নির্ধারণ করতে হবে।
atplotlib.pyplot.figure
, যা অন্যরা পরিষ্কারভাবে বলে না। আমি matplotlib.figure
এবংmatplotlib.figure.Figure
plt.figure(figsize=(1,1))
কর্কস পদক্ষেপ। ধন্যবাদ.
আপনি যদি পান্ডায় চিত্রের আকার পরিবর্তন করার কোনও উপায় সন্ধান করছেন তবে আপনি উদাহরণস্বরূপ করতে পারেন:
df['some_column'].plot(figsize=(10, 5))
যেখানে df
একটি পান্ডাস ডেটা ফ্রেম। অথবা, বিদ্যমান চিত্র বা অক্ষ ব্যবহার করতে
fig, ax = plt.subplots(figsize=(10,5))
df['some_column'].plot(ax=ax)
আপনি যদি ডিফল্ট সেটিংস পরিবর্তন করতে চান তবে আপনি নিম্নলিখিতগুলি করতে পারেন:
import matplotlib
matplotlib.rc('figure', figsize=(10, 5))
গুগলের প্রথম লিঙ্কটি 'matplotlib figure size'
হ'ল অ্যাডজাস্টিংআইজেজ সাইজ ( পৃষ্ঠার গুগল ক্যাশে )।
উপরের পৃষ্ঠাটি থেকে এখানে একটি পরীক্ষার স্ক্রিপ্ট রয়েছে। এটি test[1-3].png
একই চিত্রের বিভিন্ন আকারের ফাইল তৈরি করে:
#!/usr/bin/env python
"""
This is a small demo file that helps teach how to adjust figure sizes
for matplotlib
"""
import matplotlib
print "using MPL version:", matplotlib.__version__
matplotlib.use("WXAgg") # do this before pylab so you don'tget the default back end.
import pylab
import numpy as np
# Generate and plot some simple data:
x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)
pylab.plot(x,y)
F = pylab.gcf()
# Now check everything with the defaults:
DPI = F.get_dpi()
print "DPI:", DPI
DefaultSize = F.get_size_inches()
print "Default size in Inches", DefaultSize
print "Which should result in a %i x %i Image"%(DPI*DefaultSize[0], DPI*DefaultSize[1])
# the default is 100dpi for savefig:
F.savefig("test1.png")
# this gives me a 797 x 566 pixel image, which is about 100 DPI
# Now make the image twice as big, while keeping the fonts and all the
# same size
F.set_size_inches( (DefaultSize[0]*2, DefaultSize[1]*2) )
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test2.png")
# this results in a 1595x1132 image
# Now make the image twice as big, making all the fonts and lines
# bigger too.
F.set_size_inches( DefaultSize )# resetthe size
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test3.png", dpi = (200)) # change the dpi
# this also results in a 1595x1132 image, but the fonts are larger.
আউটপুট:
using MPL version: 0.98.1
DPI: 80
Default size in Inches [ 8. 6.]
Which should result in a 640 x 480 Image
Size in Inches [ 16. 12.]
Size in Inches [ 16. 12.]
দুটি নোট:
মডিউল মন্তব্য এবং প্রকৃত আউটপুট পৃথক।
এই উত্তরটি আকারের পার্থক্য দেখতে সহজেই একটি চিত্র ফাইলে তিনটি চিত্রকে একত্রিত করতে দেয়।
fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size[0]*2, default_size[1]*2) )
আপনি কেবল ব্যবহার করতে পারেন ( matplotlib.figure.Figure থেকে ):
fig.set_size_inches(width,height)
ম্যাটপ্লটলিব ২.০.০ হিসাবে, forward
কীওয়ার্ডের ডিফল্টTrue
হিসাবে আপনার ক্যানভাসে পরিবর্তনগুলি তত্ক্ষণাত দৃশ্যমান হবে ।
আপনি যদি উভয়ের পরিবর্তে প্রস্থ বা উচ্চতা পরিবর্তন করতে চান তবে আপনি ব্যবহার করতে পারেন
fig.set_figwidth(val)
অথবা fig.set_figheight(val)
এগুলি আপনার ক্যানভাসগুলি তাত্ক্ষণিকভাবে আপডেট করবে তবে কেবল ম্যাটপ্ল্লিটিব ২.২.০ এবং আরও নতুন।
forward=True
উপরে বর্ণিত সংস্করণগুলির চেয়ে পুরানো সংস্করণগুলিতে আপনার ক্যানভাসটি লাইভ-আপডেট করার জন্য আপনাকে স্পষ্টভাবে নির্দিষ্ট করতে হবে । মনে রাখবেন যে set_figwidth
এবং set_figheight
ফাংশনগুলি forward
ম্যাটপ্ল্লিটিব 1.5.0 এর চেয়ে পুরানো সংস্করণগুলিতে পরামিতি সমর্থন করে না ।
import matplotlib.pyplot as plt
plt.figure(figsize=(20,10))
plt.plot(x,y) ## This is your plot
plt.show()
আপনি এটি ব্যবহার করতে পারেন:
fig, ax = plt.subplots(figsize=(20, 10))
fig = ...
লাইনটি মন্তব্য করার চেষ্টা করুন
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2
fig = plt.figure(figsize=(18, 18))
plt.scatter(x, y, s=area, alpha=0.5)
plt.show()
এটি আমার পক্ষে ভাল কাজ করে:
from matplotlib import pyplot as plt
F = plt.gcf()
Size = F.get_size_inches()
F.set_size_inches(Size[0]*2, Size[1]*2, forward=True) # Set forward to True to resize window along with plot in figure.
plt.show() # or plt.imshow(z_array) if using an animation, where z_array is a matrix or numpy array
এটি এছাড়াও সহায়তা করতে পারে: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html
আপনার চিত্রের N বারের আকার বাড়াতে আপনার pl.show () এর ঠিক আগে এটি sertোকানো দরকার:
N = 2
params = pl.gcf()
plSize = params.get_size_inches()
params.set_size_inches( (plSize[0]*N, plSize[1]*N) )
এটি আইপথন নোটবুকের সাথেও ভাল কাজ করে।
যেহেতু Matplotlib সক্ষম নয় এমন সেন্টিমিটার যেমন নেটিভ মেট্রিক পদ্ধতি ব্যবহার করতে, যদি আপনি দৈর্ঘ্যের একটি যুক্তিসঙ্গত ইউনিটে আপনার চিত্র মাপ নির্দিষ্ট করতে চান, আপনি নিম্নলিখিত (থেকে কোড কি করতে পারেন gns-ANK ):
def cm2inch(*tupl):
inch = 2.54
if isinstance(tupl[0], tuple):
return tuple(i/inch for i in tupl[0])
else:
return tuple(i/inch for i in tupl)
তারপরে আপনি ব্যবহার করতে পারেন:
plt.figure(figsize=cm2inch(21, 29.7))
সিসিহোডেলিয়ার উত্তরটি সাধারণীকরণ এবং সরলকরণ। আপনি যদি কোনও ফ্যাক্টর দ্বারা চিত্রের বর্তমান আকার পরিবর্তন করতে চানsizefactor
import matplotlib.pyplot as plt
# here goes your code
fig_size = plt.gcf().get_size_inches() #Get current size
sizefactor = 0.8 #Set a zoom factor
# Modify the current size by the factor
plt.gcf().set_size_inches(sizefactor * fig_size)
বর্তমান আকার পরিবর্তন করার পরে, এটি ঘটতে পারে যে আপনাকে সাবপ্লট লেআউট টিউন করতে হবে । আপনি ফিগার উইন্ডোতে এটি করতে পারেন জিইউআই, অথবা কমান্ডের মাধ্যমে সাবপ্লটস_ডজাস্ট করুন
উদাহরণ স্বরূপ,
plt.subplots_adjust(left=0.16, bottom=0.19, top=0.82)
আর একটি বিকল্প, ম্যাটপ্ল্লোলিব (ইউনিটটি ইঞ্চি) -এ আরসি () ফাংশনটি ব্যবহার করার জন্য
import matplotlib
matplotlib.rc('figure', figsize=[10,5])
আপনি সরাসরি ব্যবহার করে চিত্রের আকার পরিবর্তন করুন
plt.set_figsize(figure=(10, 10))
pyplot
নামকরণের কোনও পদ্ধতি নেই set_figsize
।
plt.figure(figsize=(20,10))