2013-11-03 8 views
6

मैं खुद को matplotlib और पायथन के बारे में पढ़ रहा हूं और मुझे एक अंडाकार वक्र के लिए समीकरण बनाने में मुश्किल हो रही है। मैं समीकरण नीचे है, लेकिन मैं y^2पायथन - matplotlib अंडाकार घटता

नहीं कर रहा हूँ इस रूप में ज्यादा मुसीबत के रूप में मैं अपने आप को अब तक में प्राप्त करने में सक्षम था:

from mpl_toolkits.axes_grid.axislines import SubplotZero 
import matplotlib.pyplot as plt 
import numpy as np 
from pylab import * 


def plotGraph(): 
    fig = plt.figure(1) 
    ax = SubplotZero(fig, 111) 
    fig.add_subplot(ax) 

    for direction in ["xzero", "yzero"]: 
     ax.axis[direction].set_axisline_style("-|>") 
     ax.axis[direction].set_visible(True) 

    a = 5; b = 25 
    x = np.arange(-50.0, 50.0, 1.0) 
    y = pow(x,3) + a*x + b 

    xmin = -50; xmax = 50; ymin = -50; ymax = 50 
    v = [xmin, xmax, ymin, ymax] 
    ax.axis(v) 

    ax.plot(x, pow(y,2)) 

    #grid() 
    #ax.grid(color='r', linestyle='-', linewidth=2) 

    show() 


def main(): 
    plotGraph() 


if __name__ == '__main__': 
    main() 

axis() है क्योंकि मैं भी करने के लिए कोशिश कर रहा था ग्रिड लाइनों के साथ एक स्पष्ट दिखने वाला चार्ट प्राप्त करें, और मैंने सोचा कि grid() भी इसका ख्याल रखेगा लेकिन स्पष्ट रूप से नहीं। मैं इसे इंटरैक्टिव बनाने की कोशिश करने जा रहा था, जहां आप अपने इच्छित बिंदुओं पर क्लिक करते हैं और इसकी गणना होती है, लेकिन दस्तावेज़ों को देखते हुए वहां बहुत सारे इंटरैक्शन माउस विकल्प दिखाई देते हैं लेकिन मुझे माउस इंटरैक्शन नहीं दिखाई देता है जो क्लिक करके कुछ ईवेंट बनाता है चार्ट पर एक बिंदु पर (तीसरे बार इसे पढ़ने के बाद मैं अभी भी इसे याद कर रहा हूं)।

मैं बस pyplot summary on matplotlib से जा रहा हूं लेकिन मैं यह नहीं देख रहा हूं कि मैं यहां क्या कर रहा हूं। अंडाकार वक्र की साजिश रास्ता बंद है, न कि करीब भी।

यह शायद एक शुरुआती गलती है, इसलिए एक जूनियर प्रोग्रामर जो इसे पढ़ने के लिए दूसरा लेता है, शायद यह बहुत जल्दी देखेगा कि मुझे वक्र क्यों नहीं मिल रहा है।

उत्तर

12

हाँ, आप सही हैं, आप y^2 नहीं कर रहे हैं। matplotlib में अण्डाकार वक्र प्लॉट करने के लिए मैं इस कोड (अजगर 3 में परीक्षण) का इस्तेमाल किया:

import numpy as np 
import matplotlib.pyplot as plt 

def main(): 
    a = -1 
    b = 1 

    y, x = np.ogrid[-5:5:100j, -5:5:100j] 
    plt.contour(x.ravel(), y.ravel(), pow(y, 2) - pow(x, 3) - x * a - b, [0]) 
    plt.grid() 
    plt.show() 

if __name__ == '__main__': 
    main() 

मैं इस साजिश मिल गया है: enter image description here

इस तुम क्या जरूरत है?

+0

हां धन्यवाद, जो मैं प्राप्त करने की कोशिश कर रहा था उसकी मूल बातें है। +1 और स्वीकार किया गया। सुनिश्चित नहीं है कि अगर आपको पता चलता है कि वक्र पर एक विशिष्ट बिंदु को कैसे हाइलाइट/दिखाया जाए और उनके बीच एक रेखा प्राप्त करें। – stackuser

+0

आपका स्वागत है। मुझे यकीन नहीं है, लेकिन आप जो चाहते हैं उसके विवरण के साथ एक और सवाल बना सकते हैं। – ilalex