Matplotlib में लाइन ग्राफ़ के डेटा इंडेक्स के साथ लाइन का रंग अलग-अलग होने के लिए, हम निम्नलिखित कदम उठा सकते हैं -
कदम
-
फिगर साइज सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग को एडजस्ट करें।
-
numpy का उपयोग करके x और y डेटा पॉइंट बनाएं।
-
छोटी सीमा प्राप्त करें, dydx ।
-
अंक प्राप्त करें और सेगमेंट डेटा अंक numpy का उपयोग कर रहे हैं।
-
एक आकृति और सबप्लॉट का एक सेट बनाएं।
-
एक वर्ग बनाएं, जिसे कॉल करने पर, डेटा को कुछ रेंज में रैखिक रूप से सामान्य करता है।
-
छवि सरणी को numpy array से सेट करें *A* ।
-
संग्रह के लिए लाइनविड्थ सेट करें।
-
अक्ष 1 के लिए कलरबार सेट करें।
-
रंगों की सूची यानी r, g और b से Colormap ऑब्जेक्ट जेनरेट करें।
-
चरण 6, 7, 8, 9 और 10 दोहराएं.
-
X और Y अक्षों की सीमा निर्धारित करें।
-
आकृति प्रदर्शित करने के लिए, दिखाएँ () . का उपयोग करें विधि।
उदाहरण
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()
आउटपुट
यह निम्नलिखित आउटपुट देगा -