python - Matplotlib के साथ खींचे गए आंकड़ों के आकार को आप कैसे बदलते हैं?




graph visualization (9)

Matplotlib के साथ खींचे गए आकृति के आकार को आप कैसे बदलते हैं?


बहिष्करण नोट:
आधिकारिक Matplotlib गाइड के अनुसार, पिलैब मॉड्यूल के उपयोग की अब अनुशंसा नहीं की जाती है। कृपया इस अन्य उत्तर द्वारा वर्णित matplotlib.pyplot मॉड्यूल का उपयोग करने पर विचार करें।

निम्नलिखित काम करने लगता है:

from pylab import rcParams
rcParams['figure.figsize'] = 5, 10

यह आंकड़े की चौड़ाई 5 इंच बनाता है, और इसकी ऊंचाई 10 इंच होती है

चित्रा वर्ग इसके बाद इसके तर्कों में से किसी एक के लिए डिफ़ॉल्ट मान के रूप में उपयोग करता है।


Plt.rcParams का उपयोग करना

यदि आप आकृति पर्यावरण का उपयोग किये बिना आकार बदलना चाहते हैं तो यह कार्य भी है। तो यदि आप उदाहरण के लिए plt.plot() का उपयोग कर रहे हैं।

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (20,3)

जब आप इनलाइन प्लॉट करते हैं तो यह बहुत उपयोगी होता है (उदाहरण के लिए आईपीथॉन नोटबुक के साथ)।

सेमी में रूपांतरण

figsize tuple इंच को स्वीकार करता है ताकि यदि आप इसे सेंटीमीटर में सेट करना चाहते हैं तो आपको 2.54 तक विभाजित करना होगा, इस प्रश्न को देखें


आप बस उपयोग कर सकते हैं ( matplotlib.figure.Figure ):

fig.set_size_inches(width,height)

Matplotlib 2.0.0 के रूप में, आपके कैनवास में परिवर्तन तत्काल दिखाई देंगे, क्योंकि forward कीवर्ड True डिफ़ॉल्ट होता है

यदि आप दोनों की बजाय चौड़ाई या ऊंचाई को बदलना चाहते हैं, तो आप इसका उपयोग कर सकते हैं

fig.set_figwidth(val) या fig.set_figheight(val)

ये तुरंत आपके कैनवास को अपडेट करेंगे, लेकिन केवल Matplotlib 2.2.0 और नए में।

पुराने संस्करणों के लिए

उपरोक्त निर्दिष्ट संस्करणों से पुराने संस्करणों में अपने कैनवास को लाइव-अपडेट करने के लिए आपको स्पष्ट रूप से forward=True निर्दिष्ट करना होगा। ध्यान दें कि set_figwidth और set_figheight फ़ंक्शन Matplotlib 1.5.0 से पुराने संस्करणों में forward पैरामीटर का समर्थन नहीं करते हैं।


कृपया निम्न के रूप में एक सरल कोड आज़माएं:

from matplotlib import pyplot as plt
plt.figure(figsize=(1,1))
x = [1,2,3]
plt.plot(x, x)
plt.show()

प्लॉट करने से पहले आपको आकृति आकार सेट करना होगा।


यदि आप पांडस में आकृति आकार बदलने का कोई तरीका ढूंढ रहे हैं, तो आप ऐसा कर सकते हैं:

df['some_column'].plot(figsize=(10, 5))

जहां df एक पांडस डेटाफ्रेम है। यदि आप डिफ़ॉल्ट सेटिंग्स को बदलना चाहते हैं, तो आप निम्न कार्य कर सकते हैं:

import matplotlib

matplotlib.rc('figure', figsize=(10, 5))

यदि आपको पहले ही चित्र बनाया गया है तो आप इसे जल्दी से कर सकते हैं:

fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig('test2png.png', dpi=100)

किसी मौजूदा गुई विंडो में आकार परिवर्तन को प्रचारित करने के लिए forward=True जोड़ें

fig.set_size_inches(18.5, 10.5, forward=True)

यह मेरे लिए अच्छा काम करता है:

from matplotlib import pyplot as plt
F = 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


figure आपको कॉल हस्ताक्षर बताता है:

figure(num=None, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')

तो figure(figsize=(1,1)) एक इंच-दर-इंच छवि बनाता है, जो 80-बाय -80 पिक्सल होगा जबतक कि आप एक अलग डीपीआई तर्क भी न दें।


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()




visualization