पायथन में matplotlib लाइब्रेरी का उपयोग करके ग्राफ बनाने की क्षमता होती है। इसमें कई पैकेज और फ़ंक्शन होते हैं जो विभिन्न प्रकार के ग्राफ और प्लॉट उत्पन्न करते हैं। यह उपयोग करने में भी बहुत सरल है। यह numpy और अन्य पायथन बिल्ट-इन फ़ंक्शन्स के साथ मिलकर लक्ष्य प्राप्त करता है। इस लेख में हम देखेंगे कि यह किस प्रकार के विभिन्न ग्राफ उत्पन्न कर सकता है।
सिंपल ग्राफ
यहां हम ग्राफ के x और y कोऑर्डिनेट उत्पन्न करने के लिए एक गणितीय फ़ंक्शन लेते हैं। फिर हम उस फ़ंक्शन के लिए ग्राफ प्लॉट करने के लिए matplotlib का उपयोग करते हैं। यहां हम लेबल लगा सकते हैं और ग्राफ का शीर्षक दिखा सकते हैं जैसा कि नीचे दिखाया गया है। हम ट्रिग्नोमेट्रिक फ़ंक्शन tan के लिए ग्राफ प्लॉट कर रहे हैं।
उदाहरण
from matplotlib import pyplot as plt
import numpy as np
import math # pi की परिभाषा के लिए आवश्यक
x = np.arange(0, math.pi*2, 0.05)
y = np.tan(x)
plt.plot(x, y)
plt.xlabel("angle")
plt.ylabel("Tan value")
plt.title('Tan wave')
plt.show()
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:

मल्टीप्लॉट्स
हम मल्टीपल एक्सिस बनाकर और उन्हें प्रोग्राम में उपयोग करके एक ही कैनवास पर दो या अधिक प्लॉट रख सकते हैं।
उदाहरण
import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
fig = plt.figure()
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # मुख्य एक्सिस
axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # इनसेट एक्सिस
axes3 = fig.add_axes([0.2, 0.3, 0.2, 0.3]) # इनसेट एक्सिस
axes1.plot(x, np.sin(x), 'b')
axes2.plot(x, np.cos(x), 'r')
axes3.plot(x, np.tan(x), 'g')
axes1.set_title('sine')
axes2.set_title("cosine")
axes3.set_title("tangent")
plt.show()
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:

सबप्लॉट्स का ग्रिड
हम अलग-अलग ग्राफ वाले एक ग्रिड भी बना सकते हैं जिनमें से प्रत्येक एक सबप्लॉट है। इसके लिए हम subplot2grid फ़ंक्शन का उपयोग करते हैं। यहां हमें एक्सिस को सावधानी से चुनना होता है ताकि सभी सबप्लॉट ग्रिड में फिट हो सकें। थोड़े ट्रायल और एरर की आवश्यकता हो सकती है।
उदाहरण
import matplotlib.pyplot as plt
a1 = plt.subplot2grid((3,3), (0,0), colspan=2)
a2 = plt.subplot2grid((3,3), (0,2), rowspan=3)
a3 = plt.subplot2grid((3,3), (1,0), rowspan=2, colspan=2)
import numpy as np
x = np.arange(1, 10)
a2.plot(x, x*x, 'r')
a2.set_title('square')
a1.plot(x, np.exp(x), 'b')
a1.set_title('exp')
a3.plot(x, np.log(x), 'g')
a3.set_title('log')
plt.tight_layout()
plt.show()
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:

कंटूर प्लॉट
कंटूर प्लॉट (जिन्हें लेवल प्लॉट भी कहा जाता है) एक त्रि-आयामी सतह को द्वि-आयामी तल पर दिखाने का एक तरीका है। यह दो प्रिडिक्टर वेरिएबल्स X, Y को y-एक्सिस पर और एक रिस्पांस वेरिएबल Z को कंटूर के रूप में ग्राफ करता है। Matplotlib में contour() और contourf() फ़ंक्शन होते हैं जो क्रमशः कंटूर लाइन्स और भरे हुए कंटूर बनाते हैं।
उदाहरण
import numpy as np
import matplotlib.pyplot as plt
xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
fig, ax = plt.subplots(1, 1)
cp = ax.contourf(X, Y, Z)
fig.colorbar(cp) # प्लॉट में कलरबार जोड़ें
ax.set_title('Filled Contours Plot')
# ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
