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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 44: แถว 44:
  
 
ตัวอย่างอื่น ๆ ดูได้จากเว็บ [http://matplotlib.sourceforge.net/index.html matplotlib] หรือลองดูจากหน้า [http://matplotlib.sourceforge.net/users/screenshots.html screenshot] เพื่อเลือกดูตัวอย่างก็ได้
 
ตัวอย่างอื่น ๆ ดูได้จากเว็บ [http://matplotlib.sourceforge.net/index.html matplotlib] หรือลองดูจากหน้า [http://matplotlib.sourceforge.net/users/screenshots.html screenshot] เพื่อเลือกดูตัวอย่างก็ได้
 +
 +
== การพล็อตกราฟแบบ scatter ==
 +
 +
เราสามารถใช้คำสั่ง [http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.scatter scatter] ในการพล็อตกราฟแบบจุดในระนาบ x-y ได้ ด้านล่างแสดงตัวอย่าง
 +
 +
<pre>
 +
import matplotlib.pyplot as plt
 +
 +
plt.scatter([5,6,7],[17,16,15],c='blue')
 +
plt.scatter([10,11,12],[10,11,12],c='red')
 +
plt.scatter([1,-1,1,-1],[1,1,-1,-1],c='green',marker='D')
 +
plt.show()
 +
</pre>

รุ่นแก้ไขเมื่อ 06:12, 21 มิถุนายน 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) ก็ได้

ตัวอย่างอื่น ๆ ดูได้จากเว็บ matplotlib หรือลองดูจากหน้า screenshot เพื่อเลือกดูตัวอย่างก็ได้

การพล็อตกราฟแบบ scatter

เราสามารถใช้คำสั่ง scatter ในการพล็อตกราฟแบบจุดในระนาบ x-y ได้ ด้านล่างแสดงตัวอย่าง

import matplotlib.pyplot as plt

plt.scatter([5,6,7],[17,16,15],c='blue')
plt.scatter([10,11,12],[10,11,12],c='red')
plt.scatter([1,-1,1,-1],[1,1,-1,-1],c='green',marker='D')
plt.show()