Bagaimana cara memplot beberapa fungsi pada gambar yang sama, di Matplotlib?


109

Bagaimana cara memplot 3 fungsi berikut (yaitu sin, cosdan penambahan), pada domain t, dalam gambar yang sama?

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

Jawaban:


180

Untuk memplot beberapa grafik pada gambar yang sama, Anda harus melakukan:

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()

masukkan deskripsi gambar di sini


Oke, sekarang bagaimana Anda menghapus plot jika Anda ingin menggambar plot berikutnya pada grafik baru?
NoName

@NoName: Apa yang Anda maksud dengan "membersihkan plot"? Apakah Anda ingin menutup jendela plot dan membuat plot baru?
Srivatsan

Tidak apa-apa, angka default secara otomatis dihapus setelah dipanggil plt.show()sehingga membuat plot lagi tidak akan plot pada grafik yang sama.
NoName

51

Mungkin cara yang lebih pythonic untuk melakukannya.

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()

masukkan deskripsi gambar di sini


1
Bisakah Anda juga mengubah warna setiap plot menggunakan metode ini? Jika ya, bagaimana caranya?
nbro

4
Anda dapat menentukan warna dengan mengubah plt.plot()bagian sebagai: plt.plot(t, a, 'b', t, b, 'g', t, c, 'y'). Anda dapat menentukan warna berdasarkan warna yang diberikan di tautan ini: matplotlib.org/users/colors.html
Jash Shah

tidak bisakah kita menggunakan ion()dalam pyplot untuk ini terlalu benar, daripada memplot semuanya dalam satu baris?
toing_toing

@toing_toing Maaf saya tidak terlalu menyadarinya ion(). Bisakah Anda mengilustrasikan dengan sebuah contoh?
Jash Shah

1
bagaimana ini "lebih pythonic" dari jawaban yang diterima? "Eksplisit lebih baik daripada implisit." dan keterbacaan mendukung jawaban yang diterima imho (saya akui ini subjektif). Pemahaman cepat tentang panggilan plt.plot () padat Anda dimungkinkan dengan penggunaan variabel "t" yang serupa untuk tiga kurva, yang tidak sistematis. Karena itu, menurut saya menarik untuk mengetahui versi ini ada.
Blupon

6

Gunakan saja fungsinya plotsebagai berikut

figure()
...
plot(t, a)
plot(t, b)
plot(t, c)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.