यह मैटलप्लिब के साथ मेरी सबसे बड़ी निराशाओं में से एक है। मैं अक्सर रास्टर डेटा के साथ काम करता हूं जहां उदाहरण के लिए मैं एक रंगरूप, किंवदंती और कुछ शीर्षक जोड़ना चाहता हूं। ऐसा करने के लिए matplotlib गैलरी से कोई भी सरल उदाहरण परिणामस्वरूप एक अलग संकल्प होगा और इसलिए डेटा को दोबारा बदल दिया जाएगा। विशेष रूप से जब छवि विश्लेषण करते हैं तो आप किसी भी (अवांछित) resampling नहीं चाहते हैं।
यहां मैं आमतौर पर ऐसा करता हूं, हालांकि मुझे यह जानना अच्छा लगेगा कि सरल या बेहतर तरीके हैं या नहीं।
import matplotlib.pyplot as plt
import urllib2
# load the image
img = plt.imread(urllib2.urlopen('http://upload.wikimedia.org/wikipedia/en/thumb/5/56/Matplotlib_logo.svg/500px-Matplotlib_logo.svg.png'))
# get the dimensions
ypixels, xpixels, bands = img.shape
# get the size in inches
dpi = 72.
xinch = xpixels/dpi
yinch = ypixels/dpi
# plot and save in the same size as the original
fig = plt.figure(figsize=(xinch,yinch))
ax = plt.axes([0., 0., 1., 1.], frameon=False, xticks=[],yticks=[])
ax.imshow(img, interpolation='none')
plt.savefig('D:\\mpl_logo.png', dpi=dpi, transparent=True)
ध्यान दें कि मैं स्वयं कुल्हाड़ियों स्थिति परिभाषित ताकि पूरे आंकड़ा तक फैला:
एक तस्वीर लोड हो रहा है और यह सिर्फ outputting के रूप में यह एक ही संकल्प के साथ है के साथ शुरू करते हैं।
उसी तरह से ऊपर के रूप में आप लेबल या colorbars आदि
यह उदाहरण के लिए अनुमति देने के लिए छवि के चारों ओर कुछ मार्जिन जोड़ सकता है में छवि है, जो तब एक शीर्षक की साजिश रचने के लिए प्रयोग किया जाता है ऊपर एक 20% मार्जिन कहते हैं:
fig = plt.figure(figsize=(xinch,yinch/.8))
ax = plt.axes([0., 0., 1., .8], frameon=False, xticks=[],yticks=[])
ax.imshow(img, interpolation='none')
ax.set_title('Matplotlib is fun!', size=16, weight='bold')
plt.savefig('D:\\mpl_logo_with_title.png', dpi=dpi)
तो आंकड़ा वाई-आकार (ऊंचाई) बढ़ी है और अक्ष का वाई-आकार समान रूप से कम हो गया है। यह एक बड़ी (समग्र) आउटपुट छवि देता है, लेकिन अक्ष क्षेत्र अभी भी वही आकार होगा।
यह अच्छा हो सकता है कि एक वास्तविक 1-ऑन-एक्स आउटपुट को मजबूर करने के लिए .set_scale() जैसी आकृति या अक्ष गुण हो।
यह संभव है कि 'gridspec' आपको जो भी चाहिए उसे नियंत्रित करने की अनुमति देता है (अंतिम 3 [यहां उदाहरण देखें] (http://matplotlib.org/examples/pylab_examples/demo_tight_layout.html))। क्या आप कुछ उदाहरण जोड़ सकते हैं जो विभिन्न अक्ष विवरण दिखाते हैं जो समस्याएं पैदा करते हैं? – Bonlenfum
यह एक तरीका है कि एमपीएल डी-जोड़ों को क्या आकर्षित करना है और इसे आकर्षित करने के लिए _how_ का वर्णन करता है। बहुत यकीन है कि हाथ से यह कर रहे हैं, और 'tight_layout' से बचने के लिए अध्ययन कर रहे हैं, इसके साथ जाने का सबसे अच्छा तरीका है। – tacaswell