"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैटप्लोटलिब में असंतत अक्ष कैसे बनाएं?

मैटप्लोटलिब में असंतत अक्ष कैसे बनाएं?

2024-11-26 को प्रकाशित
ब्राउज़ करें:877

How to Create Discontinuous Axes in Matplotlib?

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