Làm thế nào để vẽ nhiều hàm trên cùng một hình, trong Matplotlib?


109

Làm thế nào tôi có thể vẽ đồ thị 3 chức năng sau (ví dụ sin, cosvà việc bổ sung), trên tên miền t, trong hình giống nhau không?

from numpy import *
import math
import matplotlib.pyplot as plt

t = linspace(0, 2*math.pi, 400)

a = sin(t)
b = cos(t)
c = a + b

Câu trả lời:


180

Để vẽ nhiều đồ thị trên cùng một hình, bạn sẽ phải làm:

from numpy import *
import math
import matplotlib.pyplot as plt

t = linspace(0, 2*math.pi, 400)
a = sin(t)
b = cos(t)
c = a + b

plt.plot(t, a, 'r') # plotting t, a separately 
plt.plot(t, b, 'b') # plotting t, b separately 
plt.plot(t, c, 'g') # plotting t, c separately 
plt.show()

nhập mô tả hình ảnh ở đây


Được rồi, bây giờ làm cách nào để xóa các ô nếu bạn muốn vẽ ô tiếp theo trên một biểu đồ mới?
NoName

@NoName: Ý bạn là "dọn sạch các âm mưu" là gì? Bạn có muốn đóng cửa sổ vẽ sơ đồ và vẽ một cửa sổ mới không?
Srivatsan

Đừng bận tâm, hình mặc định sẽ tự động bị xóa sau khi gọi, plt.show()do đó, việc vẽ lại sẽ không vẽ trên cùng một biểu đồ.
NoName

51

Có lẽ một cách làm như vậy dễ hiểu hơn.

from numpy import *
import math
import matplotlib.pyplot as plt

t = linspace(0,2*math.pi,400)
a = sin(t)
b = cos(t)
c = a + b

plt.plot(t, a, t, b, t, c)
plt.show()

nhập mô tả hình ảnh ở đây


1
Bạn cũng có thể thay đổi màu sắc của mỗi ô bằng phương pháp này? Nếu vậy, làm thế nào?
nbro

4
Bạn có thể chỉ định các màu sắc bằng cách thay đổi các plt.plot()phần như: plt.plot(t, a, 'b', t, b, 'g', t, c, 'y'). Bạn có thể chỉ định màu sắc dựa trên màu sắc được đưa ra trong liên kết này: matplotlib.org/users/colors.html
JASH Shah

chúng ta không thể sử dụng ion()trong pyplot cho điều này đúng, thay vì vẽ mọi thứ trong một dòng?
toing_toing

@toing_toing Xin lỗi, tôi không biết nhiều ion(). Bạn có thể minh họa bằng một ví dụ?
Jash Shah

1
Làm thế nào đây là "nhiều trăn" hơn câu trả lời được chấp nhận? "Rõ ràng là tốt hơn ẩn." và khả năng đọc hỗ trợ imho câu trả lời được chấp nhận (tôi thừa nhận điều này là chủ quan). Sự hiểu biết nhanh chóng về lệnh gọi plt.plot () dày đặc của bạn được kích hoạt bằng cách sử dụng một biến "t" tương tự cho ba đường cong, điều này không mang tính hệ thống. Nói như vậy, tôi nghĩ thật thú vị khi biết phiên bản này tồn tại.
Blupon

6

Chỉ cần sử dụng chức năng plotnhư sau

figure()
...
plot(t, a)
plot(t, b)
plot(t, c)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.