Matplotlib में असंतत अक्ष बनाना
परिचय:
Matplotlib का उपयोग करके प्लॉट बनाते समय, a निरंतर x-अक्ष का आमतौर पर उपयोग किया जाता है। हालाँकि, ऐसे उदाहरण हो सकते हैं जहाँ एक असंतत अक्ष वांछित है, जहाँ x-अक्ष मानों में एक अंतर या उछाल होता है। यह लुप्त या विरल रूप से वितरित मानों के साथ डेटा प्रदर्शित करने के लिए उपयोगी हो सकता है। प्रत्येक सबप्लॉट को x-अक्ष मानों की एक अलग श्रेणी सौंपी जा सकती है, जिसके परिणामस्वरूप सबप्लॉट के बीच एक अंतर हो जाता है। यहां एक सरल उदाहरण दिया गया है:
matplotlib.pyplot को plt के रूप में आयात करें X1 = np.linspace(0, 5, 100) y1 = np.sin(x1) x2 = np.linspace(10, 15, 100) y2 = np.cos(x2) पीएलटी.सबप्लॉट(1, 2, 1) plt.प्लॉट(X1, y1) पीएलटी.सबप्लॉट(1, 2, 2) plt.प्लॉट(x2, y2) plt.show()
कस्टम अक्ष परिवर्तन:import matplotlib.pyplot as plt x1 = np.linspace(0, 5, 100) y1 = np.sin(x1) x2 = np.linspace(10, 15, 100) y2 = np.cos(x2) plt.subplot(1, 2, 1) plt.plot(x1, y1) plt.subplot(1, 2, 2) plt.plot(x2, y2) plt.show()
matplotlib.pyplot को plt के रूप में आयात करें matplotlib.transforms से ट्रांसफ़ॉर्म आयात करें matplotlib.ticker से LogLocator आयात करें कक्षा असंततपरिवर्तन(रूपांतरण): def __init__(स्वयं, टूटता है): रूपांतरण.__init__(स्वयं) स्वयं.टूटता है = टूटता है डीईएफ़ परिवर्तन (स्वयं, मूल्य): new_values = values.copy() स्वयं में विघ्न के लिए।विराम: new_values[मान > ब्रेक] = 1 new_values लौटाएँ डीईएफ़ उलटा(स्वयं): रिटर्न इनवर्टेडडिसकंटिन्यूअसट्रांसफॉर्म(स्वयं.ब्रेक) क्लास इनवर्टेडडिसकंटिन्यूअसट्रांसफॉर्म(परिवर्तन): def __init__(स्वयं, टूटता है): रूपांतरण.__init__(स्वयं) स्वयं.टूटता है = टूटता है डीईएफ़ परिवर्तन (स्वयं, मूल्य): new_values = values.copy() स्वयं में विघ्न के लिए।विराम: new_values[मान >= ब्रेक] -= 1 new_values लौटाएँ डीईएफ़ उलटा(स्वयं): रिटर्न डिसकंटिन्यूअसट्रांसफॉर्म(स्वयं.ब्रेक) x = np.linspace(0, 10, 100) y = np.sin(x) ट्रांस = असंततट्रांसफॉर्म([5]) लोकेटर = लॉगलोकेटर(आधार=10) लोकेटर.सेट_पैराम्स(minor_locator=कोई नहीं) plt.plot(x, y, ट्रांसफॉर्म=ट्रांस) plt.gca().xaxis.set_magor_locator(locator) plt.gca().xaxis.set_majar_formatter(plt.FormatStrFormatter("%0.0f\n(pert)")) plt.show()
निष्कर्ष:import matplotlib.pyplot as plt from matplotlib.transforms import Transform from matplotlib.ticker import LogLocator class DiscontinuousTransform(Transform): def __init__(self, breaks): Transform.__init__(self) self.breaks = breaks def transform(self, values): new_values = values.copy() for break in self.breaks: new_values[values > break] = 1 return new_values def inverted(self): return InvertedDiscontinuousTransform(self.breaks) class InvertedDiscontinuousTransform(Transform): def __init__(self, breaks): Transform.__init__(self) self.breaks = breaks def transform(self, values): new_values = values.copy() for break in self.breaks: new_values[values >= break] -= 1 return new_values def inverted(self): return DiscontinuousTransform(self.breaks) x = np.linspace(0, 10, 100) y = np.sin(x) trans = DiscontinuousTransform([5]) locator = LogLocator(base=10) locator.set_params(minor_locator=None) plt.plot(x, y, transform=trans) plt.gca().xaxis.set_major_locator(locator) plt.gca().xaxis.set_major_formatter(plt.FormatStrFormatter("%0.0f\n(pert)")) plt.show()
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3