2011-01-14 13 views
6

में (अंतर्निहित) समीकरणों की प्लॉटिंग प्रणाली सबसे पहले, मैं अजगर और matplotlib के लिए नया हूँ। मुझे एक आकृति में अंतर्निहित समीकरणों की कई प्रणालियों को साजिश करने की जरूरत है।matplotlib

समीकरणों के रूप में कर रहे हैं:

3x+2y=1 

वहाँ एक आसान तरीका इन प्लॉट करने के लिए पहले समीकरण स्पष्ट बनाने के अलावा अन्य है, (अर्थात y=...)?

उत्तर

4

आप दो अंतरिक्ष आयामों में निहित भूखंडों करने के लिए contour() उपयोग कर सकते हैं:

x = numpy.linspace(-2., 2.) 
y = numpy.linspace(-2., 2.)[:, None] 
contour(x, y.ravel(), 3*x + 2*y, [1]) 

3 में आयाम, मैं matplotlib के बजाय Mayavi उपयोग करने का सुझाव।

+0

हम्म .. यह y = (1-3x)/2 के लिए ग्राफ जो एक ही होना चाहिए तुलना में एक अलग ग्राफ उत्पन्न करने के लिए लगता है। कोई विचार क्यों? – 0sh

+0

@mewoshh: क्या आप अपना सटीक कोड दिखा सकते हैं, कृपया? यह 'contour (x.ravel(), y, y- (1-3 * x)/2, [0]) जैसा कुछ होना चाहिए। और ग्राफ उपरोक्त कोड के समान होना चाहिए। –

+0

यह 'समोच्च रूप में ही है (x.ravel(), वाई, y- (1-3 * x)/2, [0])'। समस्या यह है कि यह 'y = (1-3x)/2' के वास्तविक ग्राफ के समान नहीं है। इसकी तुलना 'x = np.arange (-6,6,0.01) से करें; y = (1-3 * x)/2; साजिश (एक्स, वाई) '। – 0sh

7
import numpy as np 
import matplotlib.pyplot as plt 
# Note the order of y,x. 
y,x=np.ogrid[-5:5:100j,-5:5:100j] 
plt.contour(x.ravel(),y.ravel(),3*x+2*y,[1]) 
plt.show() 

alt text

+0

और तीन अंतरिक्ष आयामों के लिए, मैं [मायावी] (http://code.enthought.com/projects/mayavi/docs/development/html/mayavi/auto/mlab_helper_functions.html#enthought.mayavi.mlab का उपयोग करने का सुझाव देता हूं। contour3d) इसके बजाए। (मैं अपना जवाब हटा दूंगा, क्योंकि आपके पास एक तस्वीर है :) –

+0

@ स्वेन मार्नच: मुझे आपका समाधान पसंद है क्योंकि यह कम स्मृति का उपयोग करता है। शायद इसे मिटा दें? – unutbu

+0

ठीक है, आपके विशेष अनुरोध पर :) –