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

प्लॉट अनुपात matplotlib सेट करें

ध्यान दें कि इस प्लॉट में वह पक्षानुपात है जिसकी हमें अपेक्षा थी। 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 () 

matplotlib छवि प्रारूप

और यदि हम चाहते हैं कि 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 x-अक्ष पक्षानुपात y-अक्ष से अधिक लंबा है

आप यहां अधिक Matplotlib ट्यूटोरियल पा सकते हैं।

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *