दिलचस्प पोस्ट
एंड्रॉइड जावा; मैं एक स्थानीय JSON फ़ाइल को सूची फ़ोल्डर में संपत्ति फ़ोल्डर से कैसे पार्स कर सकता हूं हल करने में विफल: com.google.firebase: firebase-core: 9.0.0 स्ट्रिंग क्लास को जावा में अंतिम क्यों घोषित किया जाता है? ब्राउज़र के बिना जावास्क्रिप्ट निष्पादित करना? आवश्यक विशेषता HTML5 रेल परिसंपत्ति पाइपलाइन के साथ फोंट का उपयोग करना मैं एक बैकस्लैश के साथ एक कच्ची स्ट्रिंग क्यों नहीं समाप्त कर सकता हूं? Imagick / imagemagick को विंडोज 7 पर कैसे स्थापित करें I कैसे रद्द करने का पता लगाने के लिए फ़ाइल इनपुट पर क्लिक किया जाता है? एंड्रॉइड एन को आईडीई को जावा 1.8 या उसके बाद के साथ चलना चाहिए? लेआउट बाधाओं को प्रोग्रामेटिक रूप से बनाना Scoping नियमों का संक्षिप्त विवरण? रैवल्यूज़, लावल्यूस, एक्सवल्यूज, ग्लुवेल और प्रोजेल्स क्या हैं? पंडों में कॉलम का नाम बदलना सरणी में अंतिम कुंजी कैसे प्राप्त करें?

तितर बितर का समोच्च बनाओ

अजगर में, अगर मेरे पास डेटा का एक सेट है

x, y, z 

मैं इसके साथ एक तितर बितर कर सकता हूँ

 import matplotlib.pyplot as plt plt.scatter(x,y,c=z) 

मैं plt.contourf(x,y,z) एक plt.contourf(x,y,z) कैसे प्राप्त plt.contourf(x,y,z) ?

वेब के समाधान से एकत्रित समाधान "तितर बितर का समोच्च बनाओ"

Contourf द्वारा आवश्यक प्रारूप में कनवर्ट करने के लिए निम्न फ़ंक्शन का उपयोग करें:

 from numpy import linspace, meshgrid from matplotlib.mlab import griddata def grid(x, y, z, resX=100, resY=100): "Convert 3 column data to matplotlib grid" xi = linspace(min(x), max(x), resX) yi = linspace(min(y), max(y), resY) Z = griddata(x, y, z, xi, yi) X, Y = meshgrid(xi, yi) return X, Y, Z 

अब आप यह कर सकते हैं:

 X, Y, Z = grid(x, y, z) plt.contourf(X, Y, Z) 

यहां छवि विवरण दर्ज करें

contour नियमित रूप से गड़बड़ी हुई डेटा की उम्मीद करता है आपको इस प्रकार पहले अपने डेटा को उकसाए जाने की ज़रूरत है:

 import numpy as np from scipy.interpolate import griddata import matplotlib.pyplot as plt import numpy.ma as ma from numpy.random import uniform, seed # make up some randomly distributed data seed(1234) npts = 200 x = uniform(-2,2,npts) y = uniform(-2,2,npts) z = x*np.exp(-x**2-y**2) # define grid. xi = np.linspace(-2.1,2.1,100) yi = np.linspace(-2.1,2.1,100) # grid the data. zi = griddata((x, y), z, (xi[None,:], yi[:,None]), method='cubic') # contour the gridded data, plotting dots at the randomly spaced data points. CS = plt.contour(xi,yi,zi,15,linewidths=0.5,colors='k') CS = plt.contourf(xi,yi,zi,15,cmap=plt.cm.jet) plt.colorbar() # draw colorbar # plot data points. plt.scatter(x,y,marker='o',c='b',s=5) plt.xlim(-2,2) plt.ylim(-2,2) plt.title('griddata test (%d points)' % npts) plt.show() 

ध्यान दें कि मैंने बेशर्मी से इस कोड को उत्कृष्ट मटप्ललिब रसोई की किताब से चुरा लिया

यह समाधान इस बात पर निर्भर करेगा कि डेटा कैसे संगठित होता है।

नियमित ग्रिड पर डेटा

अगर x और y डेटा पहले से ही ग्रिड परिभाषित करते हैं, तो उन्हें आसानी से एक चौगुनी ग्रिड में रीसेट किया जा सकता है। उदाहरण के लिए

 #xyz 4 1 3 6 1 8 8 1 -9 4 2 10 6 2 -1 8 2 -8 4 3 8 6 3 -9 8 3 0 4 4 -1 6 4 -8 8 4 8 

का उपयोग कर एक contour रूप में प्लॉट किया जा सकता है

 import matplotlib.pyplot as plt import numpy as np x,y,z = np.loadtxt("data.txt", unpack=True) plt.contour(x.reshape(4,3), y.reshape(4,3), z.reshape(4,3)) 

मनमानी डेटा

(ए) यदि आंकड़े चतुर्भुज ग्रिड पर नहीं रह रहे हैं, तो कोई ग्रिड पर डेटा को दोहरा सकता है। ऐसा करने के लिए एक विधि matplotlib.mlab.griddata का उपयोग कर, matplotlib स्वयं द्वारा प्रदान की जाती है।

 import matplotlib.mlab xi = np.linspace(4, 8, 10) yi = np.linspace(1, 4, 10) zi = matplotlib.mlab.griddata(x, y, z, xi, yi, interp='linear') plt.contour(xi, yi, zi) 

(बी) अंत में, कोई एक चतुर्भुज ग्रिड के उपयोग के बिना पूरी तरह से एक समोच्च साजिश कर सकता है। यह tricontour का उपयोग करके किया जा सकता है

 plt.tricontour(x,y,z) 

उत्तरार्द्ध दो विधियों की तुलना में एक उदाहरण matplotlib पृष्ठ पर पाया जाता है।