Thursday, April 8, 2010

FreeBSD: ---> ports --->gnuplot ทำกราฟ ที่ยุ่งยาก ให้ง่าย

commands

ลงซะ จาก ports แหละ ตรงๆเลย ที่ math/gnuplot
อย่างกับว่าจะ plot ระหว่าง ระยะทาง กับเวลา เมื่อความเร็วคงที่ เช่น speed=0.25 เวลาตั้งแต่ 0.05 วินาฑี ถึง 100 วินาฑี ก็สั่งง่ายง่าย จากในภายใน gnuplot เอง ดังนี้
set terminal png nocrop enhanced size 420,320
set output 'simple.1.png'
set key left box บอกว่า เอา label ไว้ทางซ้าย ในกล่อง
set sample 100 บอก จำนวนของ จุด บนแกน x
speed=0.25 อันนี้ กำหนดว่า ความเร็วเท่ากับ 0.25 meters per second
plot [0.05:100] speed*x สั่งให้เขียนกราฟ speed คูณด้วย x ในช่วงของค่า x จาก 0.05 ถึง 100

มันจะเก็บผลลัพธ์ไว้ในแฟ้ม simple.1.png ซึ่งเหมาะที่จะเอาไปทำงานอื่นได้


จะแย้งล่ะซิท่า แหม มันเส้นตรง ง่ายๆ งั้น ลอง plot ระหว่าง sin(x)/x และ x ดูซี

เขามี demostrations ให้ ขณะเดียวกัน ก็มีคู่มือ กึ่ง ติว ให้ด้วย ไปดาวโหลดมาอ่านได้ฟรี ไปค้นดู l-gnuplot-pdf.pdf น่ะ ตัวแอล ที่ย่อมาจากคำว่า library นั่นแหละ ระวังจะดูเป็นเลขหนึ่งไป มันจะผิดความหมายไปไกลโขเลย ถ้าไม่อยากค้น ก็ นี่เลย ไปเอามาได้เลยจากหน้านี้แหละ

นี่แหละ ของฟรี ที่ถามว่า ....ทำไมไม่มีคนใช้(ว่ะ)

ขนาด big blue เขายังยอมให้กับ FlOSS
แปลกใจจัง คงต้องไปถาม ทั้งไอซีที และ วว ดูซะล่ะมั้งเนี่ยน่ะ ฮึ

อิอิ มะไฟ ตัวน้อยๆ มิบังอาจ

7 comments:

Anonymous said...

ถ้าจะสั่งพล็อตกราฟโดยใช้ภาษา C++ แล้วให้มันพล็อตในgnuplot ทำยังไงครับ
แนะนำหน่อยครับ
พอดีต้องใช้วิธีนี้ครับ ขอบคุณครับ

มะขาม said...

ขอบคุณที่สละเวลามาอ่าน
ใน C นั้นสามารถ spawn process ขึ้นมาได้ ท่านเพียงแต่
๑) เขียนแฟ้มคำสั่งที่ต้องการ plot graph อย่างที่ผมทำให้ดูขึ้นมาแฟ้มหนึ่ง
๒) แล้วเรียก gnuplot ให้อ่านคำสั่งเขียนกราฟจากแฟ้มคำสั่งนั้น
๓) spwan process จากภายใน C/C++ ให้เรียก gnuplot

ในนี้ ก็มีตัวอย่าง c codes อยู่ เผอิญ ผมเกรงว่าท่านต้องรีบใช้งาน จึงไม่สามารถค้นให้ได้

ลองดู คำสำคัญ cweb, process น่ะครับ

มะขาม said...

ผมเพิ่งค้นเจอครับ ตาม link นี้ครับ http://makham.blogspot.com/2010/06/literate-programming-freebsd-cweb.html
เริ่มจากบริเวณ @= เป็นต้นไปนั่นแหละครับ ที่ว่าเป็น C codes สำหรับ process เรียก gnuplot ในภายใน C/C++ ครับผม

หวังว่า คงพอให้คำตอบได้บ้างน่ะครับ

ขอบคุณมากน่ะครับ

มะขาม said...

ผมเพิ่งค้นเจอครับ ตาม link นี้ครับ http://makham.blogspot.com/2010/06/literate-programming-freebsd-cweb.html
เริ่มจากบริเวณ @= เป็นต้นไปนั่นแหละครับ ที่ว่าเป็น C codes สำหรับ process เรียก gnuplot ในภายใน C/C++ ครับผม

หวังว่า คงพอให้คำตอบได้บ้างน่ะครับ

ขอบคุณมากน่ะครับ

บอยฟิสิกส์ said...

ขอบคุณมากๆครับ
สำหรับคำแนะนำ ผมจะลองไปใช้ดูนะครับ
ได้ผลยังไงจะมาบอก

ต้องขอบคุณที่เขียนเรื่องราวดีๆให้อ่านครับ
โดยเฉพาะ Gnuplot ไม่มีคนไทย เขียนได้ทีเท่าคุณเลย ผมค้นหามาหมดแล้ว กลัวอยู่ ว่าเว็บจะร้างไปนานไม่มีคนตอบ

พอดีผมต้องทำโปรเจ็กต์จำลอง Ising model ของทางฟิสิกส์น่ะครับ ไปหาเจอฝรั่งเขียนไว้ เป็น matlab กับ ภาษาC ผมถนัดภาษา C มากกว่า คนเขียนเค้าใช้ gnuplot มาวาดกราฟ แต่ผมก็มารันมันไม่ออก เลยจะนั่งแก้ดูเอง พอดีโปรเจ็กต็ต้องแสดงผลเป็นกราฟน่ะครับ


ไม่ทราบว่าใช้ msn มั้ยครับ จะได้ปรึกษาได้ละเอียด ขอบคุณครับ

มะขาม said...

ตามที่พี่ท่าน ได้เข้ามาและถามไปที่ เมล์ ของผมนั้น ผมขอบคุณมาก และ สำหรับ blog นี้ ผมก็เขียนไปเรื่อย เพื่อเป็นการ พักผ่อนจิตใจ เพื่อเผยแผ่สาระ
ประเด็น gnuplot นั้น มีหลายโปรแกรม ที่นำไปใช้ อย่างน้อยๆที่รู้ ก็มี scilab, maxima ละครับ

ลองมาใช้งาน FreeBSD ซิครับ
ขอบคุณมากครับ ที่สละเวลามาอ่าน
_/\_

บอยฟิสิกส์ ได้ฝากความคิดเห็นไว้ที่บทความของคุณ "FreeBSD: ---> ports --->gnuplot ทำกราฟ ที่ยุ่งยาก ...":

ขอบคุณมากๆครับ
สำหรับคำแนะนำ ผมจะลองไปใช้ดูนะครับ
ได้ผลยังไงจะมาบอก

ต้องขอบคุณที่เขียนเรื่องราวดีๆให้อ่านครับ
โดยเฉพาะ Gnuplot ไม่มีคนไทย เขียนได้ทีเท่าคุณเลย ผมค้นหามาหมดแล้ว กลัวอยู่ ว่าเว็บจะร้างไปนานไม่มีคนตอบ

พอดีผมต้องทำโปรเจ็กต์จำลอง Ising model ของทางฟิสิกส์น่ะครับ ไปหาเจอฝรั่งเขียนไว้ เป็น matlab กับ ภาษาC ผมถนัดภาษา C มากกว่า คนเขียนเค้าใช้ gnuplot มาวาดกราฟ แต่ผมก็มารันมันไม่ออก เลยจะนั่งแก้ดูเอง พอดีโปรเจ็กต็ต้องแสดงผลเป็นกราฟน่ะครับ


ไม่ทราบว่าใช้ msn มั้ยครับ จะได้ปรึกษาได้ละเอียด ขอบคุณครับ

มะขาม said...

พอดีมาสอนหลาน เลยได้ใช้
ฮาฮาฮา
ขำดี ทำเอาไว้ให้คนอื่นใช้ ไปไปมามา ทำเองใช้เอง


View My Stats