मैटप्लॉटलीब में लाइन ग्राफ के लिए डेटा इंडेक्स के अनुसार लाइन कलर बदलने के लिए, हम निम्नलिखित चरण अपना सकते हैं:
चरण
फिगर साइज़ सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग एडजस्ट करें।
नम्पी का उपयोग करके x और y डेटा पॉइंट्स बनाएं।
छोटी लिमिट प्राप्त करें, dydx।
नम्पी का उपयोग करके points और segments डेटा पॉइंट्स प्राप्त करें।
एक फिगर और सबप्लॉट्स का सेट बनाएं।
एक क्लास बनाएं जो कॉल होने पर डेटा को रैखिक रूप से किसी रेंज में नॉर्मलाइज़ करती है।
नम्पी ऐरे *A* से इमेज ऐरे सेट करें।
कलेक्शन के लिए लाइनविड्थ सेट करें।
एक्सिस 1 के लिए कलरबार सेट करें।
रंगों की सूची यानी r, g और b से Colormap ऑब्जेक्ट जनरेट करें।
चरण 6, 7, 8, 9 और 10 दोहराएं।
X और Y एक्सेस की लिमिट सेट करें।
फिगर प्रदर्शित करने के लिए show() मेथड का उपयोग करें।
उदाहरण
import numpy as np import matplotlib.pyplot as plt from matplotlib.collections import LineCollection from matplotlib.colors import ListedColormap, BoundaryNorm plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(0, 3 * np.pi, 500) y = np.sin(x) dydx = np.cos(0.5 * (x[:-1] + x[1:])) points = np.array([x, y]).T.reshape(-1, 1, 2) segments = np.concatenate([points[:-1], points[1:]], axis=1) fig, axs = plt.subplots(2, 1, sharex=True, sharey=True) norm = plt.Normalize(dydx.min(), dydx.max()) lc = LineCollection(segments, cmap='viridis', norm=norm) lc.set_array(dydx) lc.set_linewidth(2) line = axs[0].add_collection(lc) fig.colorbar(line, ax=axs[0]) cmap = ListedColormap(['r', 'g', 'b']) norm = BoundaryNorm([-1, -0.5, 0.5, 1], cmap.N) lc = LineCollection(segments, cmap=cmap, norm=norm) lc.set_array(dydx) lc.set_linewidth(2) line = axs[1].add_collection(lc) fig.colorbar(line, ax=axs[1]) axs[0].set_xlim(x.min(), x.max()) axs[0].set_ylim(-1.1, 1.1) plt.show()
आउटपुट
यह निम्नलिखित आउटपुट उत्पन्न करेगा:
