Matplotlib में पहलू अनुपात कैसे सेट करें
मैटप्लोटलिब प्लॉट का पहलू अनुपात अक्ष स्केलिंग के पहलू को संदर्भित करता है, अर्थात, y इकाई से x इकाई का अनुपात।
इस अनुपात को matplotlib.axes.Axes.set_aspect() फ़ंक्शन का उपयोग करके संशोधित किया जा सकता है।
हुड के तहत, set_aspect() फ़ंक्शन वास्तव में डेटा समन्वय प्रणाली को बदलता है, लेकिन व्यवहार में हम आमतौर पर डिस्प्ले समन्वय प्रणाली को बदलना चाहते हैं।
इस रूपांतरण को सुविधाजनक बनाने के लिए, हम कोड के इस टुकड़े का उपयोग कर सकते हैं:
#define y-unit to x-unit ratio ratio = 1.0 #get x and y limits x_left, x_right = ax. get_xlim () y_low, y_high = ax. get_ylim () #set aspect ratio ax. set_aspect ( abs ((x_right-x_left)/(y_low-y_high))*ratio)
आइए व्यवहार में इस फ़ंक्शन का उपयोग करने का एक उदाहरण देखें।
चरण 1: एक बेसिक मैटप्लोटलिब प्लॉट बनाएं
सबसे पहले, आइए Matplotlib का उपयोग करके एक सरल लाइन चार्ट बनाएं:
import matplotlib.pyplot as plt #define matplotlib figure and axis fig, ax = plt. subplots () #create simple line plot ax. plot ([0, 10],[0, 20]) #displayplot plt. show ()
चरण 2: पक्षानुपात सेट करें (गलत तरीके से)
ध्यान दें कि x-अक्ष, y-अक्ष से लंबा है। आइए पक्षानुपात को 1 पर सेट करने का प्रयास करें, अर्थात, x-अक्ष और y-अक्ष बराबर होने चाहिए:
import matplotlib.pyplot as plt #define matplotlib figure and axis fig, ax = plt. subplots () #create simple line plot ax. plot ([0, 10],[0, 20]) #attempt to set aspect ratio to 1 ax. set_aspect (1) #displayplot plt. show ()
ध्यान दें कि यह अपेक्षा के अनुरूप काम नहीं किया। y-अक्ष, x-अक्ष से अधिक लंबा है।
चरण 3: पहलू अनुपात सेट करें (सही तरीका)
निम्नलिखित कोड दिखाता है कि सही पहलू अनुपात निर्धारित करने के लिए एक सरल गणना का उपयोग कैसे करें:
import matplotlib.pyplot as plt #define matplotlib figure and axis fig, ax = plt. subplots () #create simple line plot ax. plot ([0, 10],[0, 20]) #set aspect ratio to 1 ratio = 1.0 x_left, x_right = ax. get_xlim () y_low, y_high = ax. get_ylim () ax. set_aspect ( abs ((x_right-x_left)/(y_low-y_high))*ratio) #displayplot plt. show ()
ध्यान दें कि इस प्लॉट में वह पक्षानुपात है जिसकी हमें अपेक्षा थी। x-अक्ष और y-अक्ष की लंबाई बराबर है।
चरण 4: पहलू अनुपात को अपनी इच्छानुसार समायोजित करें
यदि हम चाहते हैं कि y-अक्ष x-अक्ष से अधिक लंबा हो, तो हम बस यह निर्दिष्ट कर सकते हैं कि पहलू अनुपात 1 से अधिक संख्या हो:
import matplotlib.pyplot as plt #define matplotlib figure and axis fig, ax = plt. subplots () #create simple line plot ax. plot ([0, 10],[0, 20]) #set aspect ratio to 3 ratio = 3 x_left, x_right = ax. get_xlim () y_low, y_high = ax. get_ylim () ax. set_aspect ( abs ((x_right-x_left)/(y_low-y_high))*ratio) #displayplot plt. show ()
और यदि हम चाहते हैं कि y-अक्ष x-अक्ष से छोटा हो, तो हम बस यह निर्दिष्ट कर सकते हैं कि पहलू अनुपात 1 से कम संख्या हो:
import matplotlib.pyplot as plt #define matplotlib figure and axis fig, ax = plt. subplots () #create simple line plot ax. plot ([0, 10],[0, 20]) #set aspect ratio to .3 ratio = .3 x_left, x_right = ax. get_xlim () y_low, y_high = ax. get_ylim () ax. set_aspect ( abs ((x_right-x_left)/(y_low-y_high))*ratio) #displayplot plt. show ()
आप यहां अधिक Matplotlib ट्यूटोरियल पा सकते हैं।