ผลต่างระหว่างรุ่นของ "01204472/ตัวอย่าง matplotlib"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 35: แถว 35:
  
 
  xx,yy = meshgrid(x,y)
 
  xx,yy = meshgrid(x,y)
 +
 +
จากนั้นคำนวณฟังก์ชันและพล็อต
 +
 +
zz = sin(sqrt(xx**2 + yy**2))
 +
ax.plot_wireframe(xx,yy,zz)
 +
 +
สามารถสั่ง ax.plot_surface(xx,yy,zz) หรือ ax.contour(xx,yy,zz) ก็ได้

รุ่นแก้ไขเมื่อ 19:21, 13 มิถุนายน 2555

สำหรับตัวอย่างด้านล่าง เรียกใน ipython ที่เรียกด้วย --pylab ถ้าเรียกใช้ใน python ต้อง import pylab ก่อน ด้วยคำสั่ง

from pylab import *

ด้านล่างเป็นโปรแกรมที่พล็อตกราฟของฟังก์ชัน

from pylab import *
x = arange(0,5,0.1)
y = sin(x)
plot(x,y)
show()            # เรียกคำสั่ง show() ถ้าสั่งจากใน python

ถ้าเรียกใน pylab ไม่จำเป็นต้องสั่งคำสั่ง show() เนื่องจาก pylab จะแสดงกราฟให้โดยอัตโนมัติ ถ้าเรียกคำสั่ง show() แล้วกราฟจะแสดงค้างไว้ ต้องปิดหน้าต่างนั้นก่อนจึงจะทำงานต่อได้

ในกรณีที่เรียกใน ipython --pylab ถ้าต้องการลบรูป สามารถสั่ง clear figure ด้วยฟังก์ชัน clf()

ถ้าเราต้องการพล็อตกราฟ 3 มิติ เราจะต้อง import แกนสามมิติมาก่อน โดยสั่ง

from mpl_toolkits.mplot3d import Axes3D

จากนั้นเราจะทำงานกับแกน 3 มิติ ที่สร้างโดยคำสั่งต่อไปนี้

ax = gca(projection='3d')
หมายเหตุ: ในกรณีที่เราพล็อตกราฟสองมิติ ในตัวอย่างก่อนหน้า เพื่อความสะดวกเราจะมีแกนมาตรฐานอยู่ก่อนแล้ว เมื่อเราสั่ง plot ฟังก์ชันนั้นจะทำงานกับแกนนั้น เราสามารถอ้างอิงถึงแกนดังกล่าวได้ด้วยฟังก์ชัน gca()

เราจะเตรียมข้อมูลสำหรับการวาดกราฟ เพื่อแสดงตัวอย่าง เราจะพล็อตฟังก์ชัน

เราจะพล็อตโดยให้ตัวแปร x และ y มีขอบเขต -5 ถึง 5

x = arange(-5,5,0.1)
y = arange(-5,5,0.1)

เพื่อความสะดวกในการเรียกใช้งาน เราจะสร้างอาร์เรย์สองมิติแทนค่าในแกน x และ y ได้โดยสั่ง meshgrid

xx,yy = meshgrid(x,y)

จากนั้นคำนวณฟังก์ชันและพล็อต

zz = sin(sqrt(xx**2 + yy**2))
ax.plot_wireframe(xx,yy,zz)

สามารถสั่ง ax.plot_surface(xx,yy,zz) หรือ ax.contour(xx,yy,zz) ก็ได้