2013-05-03 40 views
5

về cơ bản tôi muốn vẽ đồ thị hai hàmVẽ hai chức năng cùng một lúc với matplotlib

g1 = x*cos(x*pi) 
g2 = 1 - 0.6x^2 

và sau đó âm mưu ngã tư, tôi đã có một mô-đun mà sẽ đưa đầu vào gần hai dòng nút giao thông, và sau đó hội tụ những điểm (có bốn trong số đó)

nhưng tôi muốn vẽ đồ thị hai hàm này và các giao điểm của chúng bằng matplotlib nhưng không có đầu mối. Tôi chỉ vẽ đồ thị các chức năng cơ bản. Any help is appreciated rất

+0

Nếu bạn đã có thói quen tìm giao lộ, tại sao bạn không vẽ các điểm này? –

Trả lời

12

Giả sử bạn có thể nhận được như xa như âm mưu một chức năng, với x và g1 như mảng NumPy,

pylab.plot(x,g1) 

chỉ cần gọi âm mưu một lần nữa (và một lần nữa) để vẽ bất kỳ số lượng các đường cong riêng biệt :

pylab.plot(x,g2) 

cuối cùng hiển thị hoặc lưu vào một tập tin:

pylab.show() 

T o cho biết một điểm đặc biệt, chẳng hạn như giao lộ, chỉ cần vượt qua vô hướng cho x, y và yêu cầu một điểm đánh dấu như 'x' hoặc 'o' hoặc bất kỳ thứ gì khác bạn thích.

pylab.plot(x_intersect, y_intersect, 'x', color="#80C0FF") 

Ngoài ra, tôi thường đánh dấu một vị trí đặc biệt cùng x với một đoạn thẳng đứng bằng cách vẽ một cách nhanh chóng chút hai điểm tập hợp dữ liệu:

pylab.plot([x_special, x_special], [0.5, 1.9], '-b') 

tôi có thể hardcode các giá trị y nhìn tốt trên cốt truyện cho dự án hiện tại của tôi, nhưng rõ ràng điều này không thể tái sử dụng cho các dự án khác. Lưu ý rằng plot() có thể lấy các danh sách python thông thường; không cần phải chuyển đổi thành mảng numpy.

Nếu bạn không thể lập kế hoạch cho một hàm (chỉ cần g1) thì bạn cần hướng dẫn cơ bản trong lib matplot, không có câu trả lời hay ở đây nhưng hãy truy cập http://matplotlib.org/ và google "matplotlib tutorial" hoặc "giới thiệu matplotlib".

+0

cảm ơn một tấn cho tất cả các thông tin! – MITjanitor

+1

nếu yop muốn vẽ các đường trên toàn bộ ô sử dụng 'ax.axhline' và' ax.axvline'. – tacaswell

Các vấn đề liên quan