matplotlib ट्यूटोरियल
Matplotlib के साथ शुरुआत करना
खोज…
टिप्पणियों
अवलोकन
matplotlib पायथन के लिए एक प्लॉटिंग लाइब्रेरी है। यह प्लॉट्स को एप्लिकेशन में एम्बेड करने के लिए ऑब्जेक्ट-ओरिएंटेड API प्रदान करता है। यह क्षमता और वाक्य रचना में MATLAB के समान है।
यह मूल रूप से JDHunter द्वारा लिखा गया था और इसे सक्रिय रूप से विकसित किया जा रहा है। यह बीएसडी-स्टाइल लाइसेंस के तहत वितरित किया जाता है।
संस्करण
संस्करण | पायथन संस्करण समर्थित | टिप्पणियों | रिलीज़ की तारीख |
---|---|---|---|
1.3.1 | 2.6, 2.7, 3.x | पुराना स्थिर संस्करण | 2013-10-10 |
1.4.3 | 2.6, 2.7, 3.x | पिछला स्थिर संस्करण | 2015/07/14 |
1.5.3 | 2.7, 3.x है | वर्तमान स्थिर संस्करण | 2016/01/11 |
2.x | 2.7, 3.x है | नवीनतम विकास संस्करण | 2016/07/25 |
स्थापना और सेटअप
Matplotlib को स्थापित करने के बारे में कई तरीके हैं, जिनमें से कुछ आपके द्वारा उपयोग किए जा रहे सिस्टम पर निर्भर करेगा। यदि आप भाग्यशाली हैं, तो आप आसानी से matplotlib मॉड्यूल और इसकी निर्भरता को स्थापित करने के लिए एक पैकेज प्रबंधक का उपयोग करने में सक्षम होंगे।
खिड़कियाँ
विंडोज मशीनों पर आप matplotlib को स्थापित करने के लिए पाइप पैकेज मैनेजर का उपयोग करने का प्रयास कर सकते हैं। विंडोज वातावरण में पाइप स्थापित करने की जानकारी के लिए यहां देखें।
ओएस एक्स
यह अनुशंसा की जाती है कि आप matplotlib को स्थापित करने के लिए पिप पैकेज मैनेजर का उपयोग करें। यदि आपको अपने सिस्टम पर कुछ गैर-पायथन पुस्तकालयों को स्थापित करने की आवश्यकता है (उदाहरण के लिए libfreetype
) तो homebrew का उपयोग करने पर विचार करें।
यदि आप किसी भी कारण से पाइप का उपयोग नहीं कर सकते हैं, तो स्रोत से इंस्टॉल करने का प्रयास करें।
लिनक्स
आदर्श रूप से, सिस्टम पैकेज मैनेजर या पिप का उपयोग मैटप्लोटलिब को स्थापित करने के लिए किया जाना चाहिए, या तो python-matplotlib
पैकेज को pip install matplotlib
करके या pip install matplotlib
को चलाकर।
यदि यह संभव नहीं है (जैसे कि आपके द्वारा उपयोग की जा रही मशीन पर आपके पास sudo विशेषाधिकार नहीं हैं), तो आप स्रोत से --user
विकल्प: python setup.py install --user
का उपयोग करके स्थापित कर सकते हैं। आमतौर पर, यह matplotlib को ~/.local
में स्थापित करेगा।
Debian / Ubuntu
sudo apt-get install python-matplotlib
फेडोरा / रेड हैट
sudo yum install python-matplotlib
समस्या निवारण
कैसे एक टूटी हुई matplotlib को ठीक करने के बारे में सलाह के लिए matplotlib वेबसाइट देखें।
एक matplotlib साजिश को अनुकूलित करना
import pylab as plt
import numpy as np
plt.style.use('ggplot')
fig = plt.figure(1)
ax = plt.gca()
# make some testing data
x = np.linspace( 0, np.pi, 1000 )
test_f = lambda x: np.sin(x)*3 + np.cos(2*x)
# plot the test data
ax.plot( x, test_f(x) , lw = 2)
# set the axis labels
ax.set_xlabel(r'$x$', fontsize=14, labelpad=10)
ax.set_ylabel(r'$f(x)$', fontsize=14, labelpad=25, rotation=0)
# set axis limits
ax.set_xlim(0,np.pi)
plt.draw()
# Customize the plot
ax.grid(1, ls='--', color='#777777', alpha=0.5, lw=1)
ax.tick_params(labelsize=12, length=0)
ax.set_axis_bgcolor('w')
# add a legend
leg = plt.legend( ['text'], loc=1 )
fr = leg.get_frame()
fr.set_facecolor('w')
fr.set_alpha(.7)
plt.draw()
इंपीरियल बनाम ऑब्जेक्ट-ओरिएंटेड सिंटेक्स
Matplotlib प्लॉटिंग के लिए ऑब्जेक्ट-ओरिएंटेड और इंपॉर्टेंट सिंटैक्स दोनों का समर्थन करता है। अनिवार्य सिंटैक्स जानबूझकर मतलाब सिंटैक्स के बहुत करीब होने के लिए डिज़ाइन किया गया है।
अनिवार्य सिंटैक्स (जिसे कभी-कभी 'स्टेट-मशीन' सिंटैक्स कहा जाता है) सभी प्रकार के आदेशों की एक स्ट्रिंग जारी करता है, जो सबसे हालिया आंकड़ा या अक्ष (जैसे मैटलैब) पर कार्य करते हैं। दूसरी ओर ऑब्जेक्ट-ओरिएंटेड सिंटैक्स, ब्याज की वस्तुओं (आकृति, अक्ष आदि) पर स्पष्ट रूप से कार्य करता है। पायथन के ज़ेन में एक प्रमुख बिंदु यह बताता है कि स्पष्ट रूप से निहित से बेहतर है ताकि वस्तु-उन्मुख सिंटैक्स अधिक पायथोनिक हो। हालांकि, अनिवार्य सिंटैक्स मैटलैब से नए धर्मान्तरित और छोटे, "थ्रोअवे" प्लॉट स्क्रिप्ट लिखने के लिए सुविधाजनक है। नीचे दो अलग-अलग शैलियों का एक उदाहरण है।
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0, 2, 0.01)
y = np.sin(4 * np.pi * t)
# Imperative syntax
plt.figure(1)
plt.clf()
plt.plot(t, y)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude (V)')
plt.title('Sine Wave')
plt.grid(True)
# Object oriented syntax
fig = plt.figure(2)
fig.clf()
ax = fig.add_subplot(1,1,1)
ax.plot(t, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude (V)')
ax.set_title('Sine Wave')
ax.grid(True)
दोनों उदाहरण एक ही भूखंड का उत्पादन करते हैं जो नीचे दिखाया गया है।
दो आयामी (2 डी) सरणियाँ
कुल्हाड़ियों पर एक दो आयामी (2D) सरणी प्रदर्शित करें।
import numpy as np
from matplotlib.pyplot import imshow, show, colorbar
image = np.random.rand(4,4)
imshow(image)
colorbar()
show()