Matplotlib में imshow की स्केल बदलने के लिए extent और aspect पैरामीटर्स का उपयोग करें ताकि छवि खिंचे नहीं।
चरण
- फिगर आकार सेट करें और पैडिंग समायोजित करें
- 4×4 आयाम के यादृच्छिक डेटा बिंदु बनाएं
imshowसे डेटा को छवि के रूप में प्रदर्शित करेंextentपैरामीटर से छवि बफर पिक्सेल निर्देशांक को डेटा स्पेस निर्देशांक प्रणाली में मैप करेंaspectपैरामीटर से पहलू अनुपात मैन्युअल सेट करें (aspect=4) या ऑटो-स्केल (aspect='auto') करेंplt.show()से प्रदर्शित करें
उदाहरण
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
data = np.random.rand(4, 4)
# extent: [xmin, xmax, ymin, ymax] - डेटा निर्देशांक में छवि सीमा
# aspect=4: चौड़ाई/ऊंचाई अनुपात 4:1 (छवि खिंचाव रोकता है)
plt.imshow(data, origin='lower', extent=[-4, 4, -1, 1], aspect=4, cmap='viridis')
plt.colorbar(label='मान')
plt.xlabel('X (डेटा निर्देशांक)')
plt.ylabel('Y (डेटा निर्देशांक)')
plt.title('imshow में extent और aspect के साथ स्केल नियंत्रण')
plt.show()
आउटपुट
4×4 ग्रिड छवि जो X: -4 से 4, Y: -1 से 1 तक फैली है, पहलू अनुपात 4:1 बनाए रखते हुए (वर्ग पिक्सेल नहीं, बल्कि डेटा अनुपात के अनुसार)।
पैरामीटर्स समझाया
| पैरामीटर | विवरण |
|---|---|
extent=[xmin, xmax, ymin, ymax] | छवि के कोनों के डेटा निर्देशांक |
aspect | 'equal' (डिफ़ॉल्ट, वर्ग पिक्सेल), 'auto' (फिट टू एक्सिस), या संख्या (चौड़ाई/ऊंचाई अनुपात) |
origin | 'upper' (डिफ़ॉल्ट, [0,0] ऊपर), 'lower' ([0,0] नीचे) |
aspect मोड्स
aspect='equal': पिक्सेल वर्ग (1:1), डेटा अनुपात विकृत हो सकता हैaspect='auto': छवि एक्सिस भरने के लिए खिंचती हैaspect=N: पिक्सेल अनुपात N:1 (चौड़ाई:ऊंचाई)
उदाहरण: वास्तविक दुनिया निर्देशांक
# भौगोलिक डेटा: 100x100 पिक्सेल = 10km x 5km
extent = [0, 10, 0, 5] # km में
aspect = 10/5 # = 2.0
plt.imshow(elevation_data, extent=extent, aspect=aspect, origin='lower')
मूल कोड नोट
मूल उदाहरण में aspect=4 का उपयोग किया गया है जो 4:4 डेटा के लिए 4:1 अनुपात बनाता है - यह जानबूझकर गैर-वर्ग पिक्सेल दर्शाता है।