01204472/ตัวอย่าง matplotlib
สำหรับตัวอย่างด้านล่าง เรียกใน 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()
ด้านล่างเป็นโปรแกรมที่อ่านไฟล์จาก argument แล้วพล็อต scatter โดยไฟล์จะมีรูปแบบ ดังนี้
- บรรทัดแรกระบุจำนวนจุด
- บรรทัดถัด ๆ มาระบุค่า 3 ค่า คือพิกัดแกน x, พิกัดแกน y และหมายเลขหลุ่ม เป็น 1 หรือ -1
เมื่อพล็อตจะแสดงกลุ่ม 1 เป็นสีแดง กลุ่ม -1 เป็นสีน้ำเงิน
import sys import matplotlib.pyplot as plt filename = sys.argv[1] def read_points(filename): f = open(filename) n = int(f.readline().strip()) points = [] for i in range(n): items = f.readline().strip().split() x = float(items[0]) y = float(items[1]) z = int(items[2]) points.append((x,y,z)) return points points = read_points(filename) plus = [(x,y) for x,y,z in points if z==1] minus = [(x,y) for x,y,z in points if z==-1] plt.scatter([x for x,y in plus], [y for x,y in plus], c='red') plt.scatter([x for x,y in minus], [y for x,y in minus], c='blue') plt.show()
Why Have Good When You Can Have Better?
As I look back on my life, I realize that every time I thought I was being rejected from something good, I was actually being re-directed to something better. Steve Maraboli
[Why Have Good When You Can Have Better?]
[GoodvilleNews.com - good, positive news, inspirational stories, articles]
Stop Using The Wrong Type of Intelligence
A man should hear a little music, read a little poetry, and see a fine picture every day of his life, in order that worldly cares may not obliterate the sense of the beautiful which God has implanted in the human soul. Johann Wolfgang von Goethe
[Stop Using The Wrong Type of Intelligence]
[GoodvilleNews.com - good, positive news, inspirational stories, articles]
New Toilet System Transform Waste into Electricity
Scientists from Nanyang Technological University (NTU) have invented a new toilet system that will turn human waste into electricity and fertilisers and also reduce the amount of water needed for flushing by up to 90 per cent compared to current toilet systems in Singapore.
[New Toilet System Transform Waste into Electricity]
[GoodvilleNews.com - good, positive news, inspirational stories, articles]
Your Life Is What You Make It
If you limit your choices only to what seems possible or reasonable, you disconnect yourself from what you truly want, and all that is left is compromise. Robert Fritz
[Your Life Is What You Make It]
[GoodvilleNews.com - good, positive news, inspirational stories, articles]
How To Make Peace With Imperfection
If you look closely at a tree youll notice its knots and dead branches, just like our bodies. What we learn is that beauty and imperfection go together wonderfully. Matthew Fox
[How To Make Peace With Imperfection]
[GoodvilleNews.com - good, positive news, inspirational stories, articles]