วิธีการลงจุดหลายฟังก์ชันในรูปเดียวกันใน Matplotlib


110

ฉันจะพล็อตต่อไปนี้ 3 ฟังก์ชั่น (เช่นsin, cosและนอกจากนี้) บนโดเมนtในร่างเดียวกันได้หรือไม่

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

คำตอบ:


181

ในการพล็อตกราฟหลาย ๆ กราฟในรูปเดียวกันคุณจะต้องทำ:

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

ใส่คำอธิบายภาพที่นี่


เอาล่ะทีนี้คุณจะล้างพล็อตได้อย่างไรหากคุณต้องการพล็อตเรื่องถัดไปบนกราฟใหม่
NoName

@NoName: "ล้างแปลง" หมายความว่าอย่างไร? คุณต้องการปิดหน้าต่างการลงจุดและลงจุดใหม่หรือไม่?
Srivatsan

ไม่เป็นไรตัวเลขเริ่มต้นจะถูกล้างโดยอัตโนมัติหลังจากเรียกplt.show()ดังนั้นการพล็อตอีกครั้งจะไม่ลงจุดบนกราฟเดียวกัน
NoName

51

บางทีอาจเป็นวิธีที่ยิ่งใหญ่กว่าในการทำเช่นนั้น

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

ใส่คำอธิบายภาพที่นี่


1
คุณสามารถเปลี่ยนสีของแต่ละพล็อตโดยใช้วิธีนี้ได้หรือไม่? ถ้าเป็นอย่างไร
nbro

4
คุณสามารถระบุสีโดยการเปลี่ยนส่วนหนึ่งเป็น:plt.plot() plt.plot(t, a, 'b', t, b, 'g', t, c, 'y')คุณสามารถระบุสีตามสีที่ระบุในลิงค์นี้: matplotlib.org/users/colors.html
Jash Shah

เราไม่สามารถใช้ion()pyplot ในเรื่องนี้ได้ใช่ไหมแทนที่จะพล็อตทุกอย่างในบรรทัดเดียว?
toing_toing

@toing_toing ion()ขออภัยผมไม่ทราบเกินไป ยกตัวอย่างให้ดูได้ไหม?
Jash Shah

1
"pythonic" มากกว่าคำตอบที่ยอมรับได้อย่างไร "ชัดเจนดีกว่าโดยนัย" และความสามารถในการอ่านสนับสนุนคำตอบที่ยอมรับ imho (ฉันยอมรับว่านี่เป็นเรื่องส่วนตัว) ความเข้าใจอย่างรวดเร็วเกี่ยวกับการเรียก plt.plot () ที่หนาแน่นของคุณถูกเปิดใช้งานโดยการใช้ตัวแปร "t" ที่คล้ายกันสำหรับเส้นโค้งทั้งสามซึ่งไม่เป็นระบบ ฉันคิดว่ามันน่าสนใจที่จะรู้ว่ามีเวอร์ชันนี้อยู่
Blupon

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.