ซอฟต์แวร์และเวิร์กโฟลว์ใดที่แนะนำสำหรับการเผยแพร่ข้อมูลทางวิทยาศาสตร์และกราฟ


40

ซอฟต์แวร์ใดที่ให้ขั้นตอนการทำงานที่ดีตั้งแต่การวางแผนดาต้าพอยน์ง่ายๆไปจนถึงการสร้างกราฟิกระดับสิ่งพิมพ์ที่มีสไตล์โดยละเอียดการเรียงพิมพ์ทางคณิตศาสตร์และ "คุณภาพระดับมืออาชีพ"

สิ่งนี้เกี่ยวข้องกับคำถามของเดวิด ( คุณลักษณะใดบ้างที่ทำให้มีคุณภาพระดับมืออาชีพ? ) แต่การโฟกัสไม่ได้อยู่ที่คุณลักษณะ แต่ใช้กับซอฟต์แวร์หรือทั่วไปเวิร์กโฟลว์เพื่อไปที่นั่น ฉันมีประสบการณ์ผิวเผินด้วยหลายโปรแกรม Gnuplot, Origin, Matplotlib, TikZ / PGFplot, Qtiplot แต่การทำการวิเคราะห์ข้อมูลและตัวเลขที่ดีในเวลาเดียวกันนั้นค่อนข้างยากที่จะทำ

มีซอฟต์แวร์บางอย่างที่อนุญาตสิ่งนี้หรือฉันควรขุดลึกลงไปในแพ็คเกจใดแพ็คเกจหนึ่งหรือไม่?

แก้ไข: เวิร์กโฟลว์ปัจจุบันของฉันคือการผสมผสานขององค์ประกอบที่แตกต่างกันซึ่งทำงานร่วมกันมากหรือน้อย แต่โดยรวมแล้วมันไม่ได้มีประสิทธิภาพจริงๆและฉันคิดว่านี่เป็นเรื่องปกติสำหรับนักวิทยาศาสตร์จำนวนหนึ่งที่ห้องปฏิบัติการของมหาวิทยาลัย โดยทั่วไปแล้วจะเป็นห่วงโซ่ที่เริ่มต้นจากการทดสอบไปยังสิ่งพิมพ์เช่นนี้:

  1. รับข้อมูลทดลอง (โดยปกติจะอยู่ในรูปแบบ ASCII แต่มีเค้าโครงที่แตกต่างกันเช่นส่วนหัวความคิดเห็นจำนวนคอลัมน์)
  2. พล็อตข้อมูลอย่างรวดเร็วเพื่อตรวจสอบว่าไม่มีอะไรผิดพลาดในโปรแกรม Origin, Gnuplot หรือ arcane plot 20 ปีที่ผ่านมา
  3. การวิเคราะห์รายละเอียดเพิ่มเติมของข้อมูล: การลบการสนับสนุนพื้นหลังการวิเคราะห์การพึ่งพาและสหสัมพันธ์การปรับให้เหมาะสมกับแบบจำลองทางทฤษฎี นักวิทยาศาสตร์หลายคนใช้ Origin สำหรับงานนี้มีการใช้ Matlab และ Python / Scipy / Numpy เพิ่มมากขึ้น
  4. การสร้างตัวเลขระดับมืออาชีพสิ่งนี้เกี่ยวข้องกับการปรับตามแนวทางของวารสารการเรียงพิมพ์ทางคณิตศาสตร์และการแก้ไขทั่วไป ในขณะนี้ฉันใช้ Origin สำหรับสิ่งนี้ แต่มันมีข้อเสียหลายประการ (เพียงพยายามที่จะได้รับ linewthth 0.5pt อย่างแน่นอนมันเป็นไปไม่ได้) สำหรับการรวม / การขัดเงาฉันใช้ Adobe Illustrator เป็นหลักเนื่องจากสามารถจัดการ im- / ส่งออกเอกสาร PDF ได้เป็นอย่างดี แต่ฉันไม่ต้องการผ่านสองขั้นตอนสำหรับแต่ละไดอะแกรม

ฉันได้เพิ่มตัวอย่างว่ามันจะเป็นอย่างไรในท้ายที่สุด (เนื่องจากสิ่งนี้ถูกสร้างขึ้นด้วยมือโดยส่วนใหญ่การเปลี่ยนแปลงอะไรที่เจ็บปวดและอะไรก็ตามที่มีอินเทอร์เฟซเพื่อยกตัวอย่าง linewidth สำหรับองค์ประกอบทั้งหมดจะดี):ป้อนคำอธิบายรูปภาพที่นี่


2
บางทีคุณควรชี้แจงความต้องการของคุณ ในรูปแบบปัจจุบันคำถามเพียงแค่ดึงดูดรายการซอฟต์แวร์จำนวนมาก ไม่มีใครอธิบายอย่างละเอียดถึงข้อดีและข้อเสียของระบบ เมื่อมองดูแล้วจะไม่ช่วยให้ฉันเลือกได้ แน่นอนว่าซอฟต์แวร์คอมพิวเตอร์เชิงเทคนิคทั้งหมด, MATLAB, Mathematiac, Maple, โซลูชัน Python ทั้งหมด, R, ฯลฯ มีเครื่องมือมากมายสำหรับการสร้างแปลง จากนั้นมีเครื่องมือ GUI เช่น Origin และ xmgrace ตัวเลือกใดเป็นตัวเลือกที่ดีที่สุดขึ้นอยู่กับความต้องการของคุณ
Szabolcs

@ Szabolcs: ฉันยอมรับว่าคำถามของฉันค่อนข้างกว้าง เวิร์กโฟลว์ของฉันไม่เหมือนเดิมเสมอไปในขณะที่ฉันกำลังวิเคราะห์ข้อมูลจากการทดลองที่แตกต่างกันดังนั้นฉันจึงพยายามที่จะรักษาคำถามให้กว้างขึ้น
Alexander

คำตอบ:


31

หากคุณมีประสบการณ์บางอย่างกับงูหลาม (หรือแม้กระทั่งไม่ได้) ผมจะแนะนำให้ใช้ซอฟแวร์ทางวิทยาศาสตร์หลามที่มีอยู่ ( SciPy , นุ่น ), ... ) ร่วมกับMatplotlib ในฐานะที่เป็นสภาพแวดล้อมการเขียนโปรแกรมคุณสามารถควบคุมการไหลของข้อมูลการจัดการข้อมูลและการพล็อต นอกจากนี้คุณยังสามารถใช้ "การใช้งานเต็มรูปแบบ" Mayavi2หรือ Veusz


14
+1 สำหรับ Matplotlib นอกเหนือจากประเด็นที่กล่าวถึงความสามารถในการใช้ LaTeX ในฟิลด์ข้อความจะช่วยให้คุณ "ร้องขอการเรียงพิมพ์เชิงคณิตศาสตร์"
Barron

คำแนะนำสำหรับ chaco ของ enthought?
pcr

1
Chaso สุดยอดมากสำหรับแปลงแบบอินเตอร์แอคทีฟ IMHO สัตว์ที่แตกต่างกันอย่างสิ้นเชิง
meawoppl

2
และสำหรับการพล็อตเด็ดของ Matplotlib ให้ดูที่ท้องทะเล
Christian Clason

1
หรือprettyplotlib
GertVdE

15

ขึ้นอยู่กับสิ่งที่คุณพูดภาษาสคริปต์วัตถุประสงค์ทั่วไปน่าจะเป็นทางออกที่ดีที่สุดของคุณตราบใดที่มีความสามารถในการสร้างกราฟบางประเภทที่คุณสามารถเข้าถึงได้

ในหลอดเลือดดำนั้น MATLAB จะทำงานแม้ว่าคุณจะต้องเล่นกับความกว้างของเส้นสัญลักษณ์และแกนสำหรับแปลงคุณภาพงานนำเสนอ เมื่อพิจารณาจากเกณฑ์ของคุณฉันจะบอกว่าจุดอ่อนใหญ่ของ MATLAB คือการเรียงพิมพ์ทางคณิตศาสตร์โดยละเอียด MATLAB สามารถใช้ป้ายกำกับ TeX บางส่วนได้ แต่มีคำสั่ง LaTeX บางคำที่ไม่สามารถจัดการได้ดังนั้นฉันจำได้ว่าต้องย้อนกลับและตัดและวางฉลาก LaTeX บางส่วนจาก PDF ใน Adobe Illustrator

Python + NumPy จะทำงานเพื่อนำเข้าข้อมูลเนื่องจากnumpy.loadtxtทำให้การนำเข้าข้อมูลข้อความไม่เจ็บปวด ณ จุดนั้นคุณสามารถเลือกระหว่าง matplotlib และ Gnuplot (ซึ่งมีอินเทอร์เฟซ Python ผ่านGnuplot.pyไม่มีการพัฒนาที่ใช้งานได้บนอินเทอร์เฟซตั้งแต่ปี 2008 แต่แล้วอีกครั้ง Gnuplot จะเปลี่ยนแปลงทุกอย่างอีกต่อไป ) เสื้อคลุม PyAsy ของ MatthewEmmett สามารถใช้ได้เช่นกันขึ้นอยู่กับสิ่งที่คุณต้องการจะทำ Matplotlib มีการเรียงพิมพ์ทางคณิตศาสตร์ที่ยอดเยี่ยม (ตามที่ระบุไว้โดย Barron) และการจัดการข้อมูลสามารถทำได้โดยใช้ NumPy, SciPy หรือแพ็กเกจ Python อื่น ๆ ที่คุณต้องการส่งไปยังข้อมูลของคุณ

ปัญหาที่ฉันมีกับ gnuplot ด้วยตัวมันเองก็คือมันสร้างขึ้นมาเพื่อการวางแผนเท่านั้น ฉันไม่ทราบวิธีจัดการข้อมูลภายในภาษาสคริปต์ gnuplot ฉันได้ทำการจัดการข้อมูลทั้งหมดของฉันล่วงหน้าก่อนที่ฉันจะส่งออกไปยังข้อความเพราะฉันไม่สามารถหาวิธีอื่นได้ คุณสามารถใช้ gnuplot เพื่อประเมินสูตรและทำการเปลี่ยนแปลงบางอย่าง แต่สำหรับฉัน Python มีไวยากรณ์ที่เป็นธรรมชาติมากขึ้นและมีประโยชน์ใช้สอยมากกว่า gnuplot ฉันไม่ต้องการที่จะเรียนรู้ภาษาอื่นเพียงเพื่อทำสิ่งหนึ่งเว้นแต่ว่ามันเป็นภาษาธรรมชาติที่ง่ายต่อการเรียนรู้ (หรือถ้าฉันไม่ได้ถูกบังคับ)

Tecplot 360 มีปัญหาคล้ายกัน Tecplot 360 สร้างแปลงที่น่าทึ่งโดยเฉพาะใน 3D มีสิ่งต่าง ๆ ที่คุณสามารถทำได้กับ Tecplot 360 โดยใช้ GUI ที่เรียนรู้ได้ง่ายซึ่งคุณอาจกดยากที่จะทำในแพ็คเกจการวางแผนอื่น ครั้งสุดท้ายที่ฉันใช้ Tecplot คือ 6 หรือ 7 ปีก่อน เห็นได้ชัดว่าพวกเขาได้เพิ่มฟังก์ชั่นมากมายตั้งแต่ การจัดการข้อมูลสามารถทำได้ผ่านการทำดัชนีแบ่งส่วนหรือสร้างโซน ปริมาณที่ได้มาสามารถคำนวณได้โดยใช้สมการ คุณยังสามารถใช้การแปลงฟูริเยร์ข้อมูลของคุณทำการแก้ไข (หรือแปลง) และทำสิ่งอื่น ๆ อีกมากมาย มันไม่ชัดเจนว่าจะทำการเรียงพิมพ์ทางคณิตศาสตร์ได้อย่างไร ฉันเดาว่าคุณสามารถแฮ็คเอาต์พุต HTML จาก Tecplot และเพิ่ม MathJax หรือ MathML ได้หรือไม่ ข้อเสียในใจของฉันเกี่ยวกับ Tecplot คือมันไม่ฟรี (ซึ่งหมายความว่าเป็นเครื่องมือ คุณอาจไม่สามารถนำติดตัวไปกับคุณจากงานต่องาน) การเรียงพิมพ์ทางคณิตศาสตร์ที่ไม่แน่นอนและการจัดการข้อมูลสคริปต์ที่ซับซ้อนนั้นจำเป็นต้องเรียนรู้ภาษามาโครของ Tecplot ข้อได้เปรียบหลักคือความสามารถในการวางแผน 3 มิติเหนือกว่า matplotlib และ MATLAB ด้วยการยิงระยะไกล เป็นไปได้ที่จะทำการแบ็ตช์ข้อมูลโดยใช้ภาษาแมโคร / สคริปต์ของ Tecplot และสามารถเรียกสคริปต์ Python ภายนอก (ด้วยฟังก์ชันที่ จำกัด ) เช่นเดียวกับ MATLAB มี GUI ที่คุณสามารถใช้ย้อนกลับไปได้หากคุณไม่ต้องการเรียนรู้การเขียนสคริปต์ Tecplot (GUI ของ Tecplot มีคุณสมบัติครบถ้วนมากกว่า MATLAB) ข้อได้เปรียบหลักคือความสามารถในการวางแผน 3 มิติเหนือกว่า matplotlib และ MATLAB ด้วยการยิงระยะไกล เป็นไปได้ที่จะทำการแบ็ตช์ข้อมูลโดยใช้ภาษาแมโคร / สคริปต์ของ Tecplot และสามารถเรียกสคริปต์ Python ภายนอก (ด้วยฟังก์ชันที่ จำกัด ) เช่นเดียวกับ MATLAB มี GUI ที่คุณสามารถใช้ย้อนกลับไปได้หากคุณไม่ต้องการเรียนรู้การเขียนสคริปต์ Tecplot (GUI ของ Tecplot มีคุณสมบัติครบถ้วนมากกว่า MATLAB) ข้อได้เปรียบหลักคือความสามารถในการวางแผน 3 มิติเหนือกว่า matplotlib และ MATLAB ด้วยการยิงระยะไกล เป็นไปได้ที่จะทำการแบ็ตช์ข้อมูลโดยใช้ภาษาแมโคร / สคริปต์ของ Tecplot และสามารถเรียกสคริปต์ Python ภายนอก (ด้วยฟังก์ชันที่ จำกัด ) เช่นเดียวกับ MATLAB มี GUI ที่คุณสามารถใช้ย้อนกลับไปได้หากคุณไม่ต้องการเรียนรู้การเขียนสคริปต์ Tecplot (GUI ของ Tecplot มีคุณสมบัติครบถ้วนมากกว่า MATLAB)

เครื่องมือที่ใช้ LaTeX อย่าง TikZ และ PGFPlots นั้นไม่ได้ถูกออกแบบมาให้เหมาะกับการใช้งานของคุณ จุดอ่อนนี่คือการจัดการข้อมูล TikZ และ PGFPlots เป็นเครื่องมือ LaTeX ที่ยอดเยี่ยม ฉันหวังว่าฉันจะรู้วิธีการใช้งานให้ดีขึ้น เนื่องจากพวกเขากำลัง LaTeX ฉันเดาว่าเวิร์กโฟลว์กำลังตัดและวางข้อมูลที่จำเป็นลงใน LaTeX และวางแผนมัน เป็นไปได้ที่จะรันโปรแกรมภายใน LaTeX แต่ฉันไม่เห็นว่าความสามารถนั้นจะช่วยคุณได้อย่างไรสำหรับการนำเสนอหรือเอกสารกรณีการใช้งานที่คุณอธิบายอธิบายว่าคุณอาจจะรักษา ผลิตภัณฑ์สำเร็จรูป บางทีคุณอาจโอเคกับเวิร์กโฟลว์นั้น เครื่องมือทั้งสองมีชื่อเสียงด้านการออกแบบที่ดีและผลิตตัวเลขคุณภาพสูง

ในที่สุด Adobe Illustrator เป็นเครื่องมือที่ดีในการแปลงแปลงอย่างที่คุณพูด ข้อบกพร่องก็เหมือนที่คุณพูดว่าขาดความสามารถในการเขียนสคริปต์หรือทำซ้ำ แต่ไม่มีอะไรเต้นโปรแกรมแก้ไขกราฟิกถ้าคุณต้องการที่จะปรับแต่งขนาดเล็ก


1
ฉันแค่ต้องการเพิ่มความคิดเห็นเล็ก ๆ เพื่อคำตอบที่ดีนี้ ไม่จำเป็นต้องใช้ผลิตภัณฑ์ Adobe เครื่องมือโอเพนซอร์ซโอเพนซอร์ซยังช่วยมอบเครื่องมือที่ยอดเยี่ยมสำหรับการแปลงแปลง เมื่อใช้ร่วมกับปลั๊กอิน LaTeX มันสามารถทำงานได้ดี
Azrael3000

10

ฉันคิดว่านี่เป็นคำถามที่ยอดเยี่ยมและเป็นคำถามที่อยู่ในระดับแนวหน้าในใจของฉันในขณะนี้ เมื่ออ่านวารสารคณิตศาสตร์ส่วนใหญ่ Matlab ดูเหมือนว่าจะเป็นที่ยอมรับ แต่มันก็ไม่ได้วัดค่า IMHO กับพล็อตและไดอะแกรมที่สวยงามที่ปรากฏในวารสารเช่น PNAS, ธรรมชาติ, PLoS ONE เป็นต้น

หลังจากถกปัญหานี้ในกลุ่มการวิจัยของฉันเป็นเวลาหลายสัปดาห์แล้วเราก็ยังไม่พบข้อสรุปที่แท้จริงว่าแพ็คเกจใดดีที่สุด เราพบว่าการเปรียบเทียบซอฟต์แวร์กราฟิกส่วนใหญ่ในเอกสารบล็อกหรือแหล่งข้อมูลบนเว็บอื่น ๆ นั้นไม่มีประโยชน์ในการพิจารณาว่าแพ็คเกจใดเหมาะที่สุดสำหรับวัตถุประสงค์ที่กำหนด

ฉันคิดว่าสิ่งที่จะช่วยให้ผู้ใช้โดยเฉลี่ยที่ไม่ใช่ผู้เชี่ยวชาญในทุก ๆ แพ็คเกจเหล่านี้มีตัวอย่างเล็ก ๆ ที่กำหนดไว้อย่างดีซึ่งสามารถใช้เป็น "เกณฑ์มาตรฐานกราฟิก" ของสิ่งต่าง ๆ ใช้เป็นเกณฑ์มาตรฐาน CFD ) เท่าที่ฉันรู้ไม่มีอะไรเช่นนี้ในปัจจุบัน

อย่างน้อยฉันก็อยากจะดู:

  1. พล็อตเส้น 2D ที่ตรงไปตรงมาอย่างสมเหตุสมผลมีหลายบรรทัดและพอยน์เลเจนต์คณิตศาสตร์ในเลเบล / ชื่อ ฯลฯ
  2. เหมือนกันสำหรับพล็อตพื้นผิว 3 มิติ
  3. พล็อต 3 มิติที่มีความซับซ้อนมากขึ้นพร้อมกับไอเซิร์ฟเฟซ, ระนาบการตัดและอาจมีคุณสมบัติแฟนซีอื่น ๆ
  4. แผนภาพ 3 มิติแฟนซี

ข้อมูลจะถูกจัดไว้สำหรับ # 1-3 และรูปภาพหรือไดอะแกรม "ดั้งเดิม" สำหรับ # 4 แต่ละตัวอย่างจะมีการโพสต์รหัส (อินพุท) และรูปภาพ (เอาท์พุท) สิ่งนี้จะช่วยให้ผู้อ่านตัดสินได้ง่ายขึ้นว่าแพ็กเกจใดเหมาะสำหรับพวกเขาทั้งในแง่ของคุณภาพของภาพและความซับซ้อนของรหัส

แผนการของฉันคือการทำสิ่งนี้ในกลุ่มของฉันในอีกไม่กี่เดือนข้างหน้าสำหรับ # 1, 2, 4 และแพ็คเกจจำนวนเล็กน้อยรวมถึง Matlab, pgf / TikZ, python / scipy หากมีความสนใจฉันสามารถโพสต์แบบสาธารณะได้

ดังนั้นในขณะที่ยังไม่ได้รับคำตอบสำหรับคำถามที่โพสต์แต่ยัง (และฉันขอโทษสำหรับ) มันอาจเป็นคำตอบในเวลาหลายเดือน


มาตรฐานที่แนะนำดังกล่าวเป็นความคิดที่ดี วิธีที่แนะนำทั้งหมดในการเข้าถึงไดอะแกรมสุดท้ายนั้นยากที่จะเปรียบเทียบหากคุณไม่ได้เริ่มต้นจากชุดข้อมูลและข้อกำหนดที่กำหนด นอกจากนี้การเห็นรหัสในภาษา / แพ็คเกจที่แตกต่างกันช่วยให้คุณสามารถเปรียบเทียบสิ่งที่เหมาะสมกับความต้องการของคุณมากขึ้น โดยเฉพาะอย่างยิ่งกับ TikZ ฉันมีความประทับใจที่คุณสามารถทำซ้ำได้เกือบทุกอย่าง แต่มันอาจต้องใช้ผู้เชี่ยวชาญที่แท้จริงในการทำเช่นนั้น
Alexander

ฉันคิดว่าการเปรียบเทียบเป็นความคิดที่ดี ผมขอแนะนำสำหรับ 2D แปลงของคุณที่คุณทำซ้ำบางส่วนของแปลงในแกลเลอรี่ Matplotlib มีการระบุรหัสตัวอย่างสำหรับแต่ละตัวอย่างแล้ว สำหรับตัวอย่าง 3D, Mayavi มีคล้ายแกลเลอรี่ในเอกสารประกอบของตนและดี3 มิติเช่นการกวดวิชา การทำซ้ำแปลง 3D เหล่านี้ในแพ็คเกจอื่นอาจมีประโยชน์เช่นกัน
Geoff Oxberry

ตอนนี้คุณใช้อะไรอีกหลายเดือนต่อมา ความคิดเห็นใด ๆ เกี่ยวกับการสร้างแปลงโดยแฮ็ค (คนจรจัดที่มีตัวเลือกพล็อตในหน้าต่างข้อความพล็อตวนซ้ำ ... ) และ / หรือโต้ตอบ?
ปฏิเสธ

8

LATEX


+1 และสำหรับแปลงด่วนลอง qtiplot ซึ่งเป็นแหล่งกำเนิดโคลนที่ดีและสามารถปรับเส้นโค้งได้เช่นกัน สำหรับรูปแบบ finaly xfig นั้นดีมาก (แต่ยาก) และสามารถฝังสูตรลาเท็กซ์ได้โดยตรงด้วยการเจาะเข้าไปในรายละเอียดเล็กน้อย ...
Karussell

8

แพคเกจซอฟต์แวร์ที่จะต้องพิจารณาเป็นสิ้นสุด Asymptote เป็นภาษาการเขียนโปรแกรม (ด้วย C ++ เช่นไวยากรณ์) ที่สร้างเอาต์พุตแบบเวกเตอร์ คุณสมบัติที่ดีอย่างหนึ่งคือข้อความถูกสร้างด้วย LaTeX (รวมถึงสมการทางคณิตศาสตร์) ดังนั้นข้อความในรูปภาพของคุณจึงสอดคล้องกับเอกสารของคุณ

ฉันเขียน wrapper Python ไปยัง Asymptote ที่ชื่อว่าPyAsyเพื่อที่ฉันจะสามารถส่ง NumPy arrays ไปยังเอ็นจิ้น Asymptote และทำการพล็อตพื้นฐานบางอย่าง มันค่อนข้างหยาบและไม่สมบูรณ์ แต่อาจมีประโยชน์

อย่างไรก็ตามคุณภาพผลผลิตของ Asymptote นั้นดีจริงๆ

แก้ไข: จากข้างต้นฉันพบว่าFabricมีประโยชน์อย่างมากสำหรับการเปิดใช้งานรีโมตซิงค์ไดเรกทอรีและสร้างไบนารีเรียกใช้ข้อมูลและ / หรือเรียกใช้สคริปต์การวิเคราะห์ระยะไกล มันเป็นห้องสมุด Python ที่ค่อนข้างเบาซึ่งทำให้การเรียกใช้คำสั่งระยะไกลง่ายขึ้นเล็กน้อย (และสคริปต์)


8

ให้ฉันเขียนรีวิวสั้น ๆ เกี่ยวกับฟังก์ชันกราฟิกของ Mathematica เพราะนั่นคือสิ่งที่ฉันคุ้นเคย

มันทำอะไรได้บ้าง?

หากต้องการดูตัวอย่างลองดูที่คลังภาพ Mathematicaบนเว็บไซต์ Wolfram มันไม่ได้เฉพาะเจาะจงเกี่ยวกับการสร้างภาพ แต่ตัวอย่างเกือบทั้งหมดรวมถึงการวางแผนบางอย่าง

นอกจากนี้คุณยังสามารถเรียกดูพล็อต (ขั้นพื้นฐาน) และ กราฟิก (ขั้นสูง) แท็กMathematica.SE

เป็นไปได้ที่จะสร้างภาพตัวอย่างของคุณด้วยวิธีอัตโนมัติอย่างสมบูรณ์ (ไม่จำเป็นต้องดำเนินการด้วยตนเองภายหลัง)

จุดแข็ง

  • กราฟิกทั้งหมดระบุไว้ในวิธีการประกาศ (เช่น SVG --- คุณไม่ได้บอกให้ระบบวาดบางสิ่งคุณเพียงแค่แสดงรายการวัตถุกราฟิกแบบเวกเตอร์) กราฟิกเป็นนิพจน์ทางคณิตศาสตร์แบบเดียวกับสิ่งอื่น ๆ ในระบบพวกเขาจะแสดงในลักษณะพิเศษ ซึ่งหมายความว่ากราฟิกสามารถแปลงและประมวลผลได้ง่ายหลังจากที่สร้างขึ้น - ซึ่งใช้กับกราฟิกที่ทำโดยการพล็อตก์ฟังก์ชันเช่นกัน

  • วิธีที่รวดเร็วและง่ายในการสร้างกราฟิกคือการใช้ฟังก์ชั่นการวางแผนระดับสูงและการตั้งค่าตัวเลือกมากมายเพื่อปรับแต่งเอาต์พุตของพวกเขา หากไม่มีฟังก์ชั่นสำหรับพล็อตที่แม่นยำที่คุณต้องการคุณสามารถรวบรวมกราฟิกจากกราฟิกพื้นฐาน (ซึ่งก็ง่ายเหมือนกัน)

  • ฟังก์ชั่นการคำนวณฟังก์ชั่นทางคณิตศาสตร์เป็นเลิศ เท่าที่ฉันรู้ว่ามันเป็นชั้นนำ ฟังก์ชั่นตัวอย่าง Mathematica สามารถปรับเปลี่ยนได้ (ทั้งใน 2D และ 3D) เพื่อให้สามารถสร้างพล็อตที่ราบรื่นได้อย่างรวดเร็วและอัตโนมัติ ตรวจพบภาวะเอกฐานความไม่ต่อเนื่องและอื่น ๆ โดยใช้ฟังก์ชันการวางแผน

  • คุณสามารถสร้างตัวเลขสำหรับขนาดการพิมพ์ที่เฉพาะเจาะจงและตรวจสอบให้แน่ใจว่าเหมาะสมกับข้อความโดยรอบในสิ่งพิมพ์ (เช่นขนาดตัวอักษรและลักษณะที่ตรงกัน) ใน 2D มีสองชนิดของพิกัด: พิกัดของพล็อตที่สอดคล้องกับข้อมูลของคุณและพิกัดสัมบูรณ์ที่ระบุในจุดของเครื่องพิมพ์ สเกลในอดีตเมื่อปรับขนาดกราฟิก ข้อความใช้พิกัดแบบสัมบูรณ์ตามค่าเริ่มต้นซึ่งหมายความว่าประเภท 8 จุดจะเป็น 8 จุดโดยไม่คำนึงว่ารูปแบบเดียวกันจะถูกส่งออกที่ขนาด 7 ซม. หรือ 14 ซม. สิ่งนี้ทำให้มีขนาดตัวอักษรที่สอดคล้องกับข้อความในสิ่งพิมพ์

  • เรียงพิมพ์ Builtin สำหรับสูตรทางคณิตศาสตร์ Matexแพคเกจของบุคคลที่สามให้บูรณาการน้ำยางที่มีคุณภาพที่ดีเยี่ยมสูตรเรียงพิมพ์ (การเปิดเผย: ฉันเป็นผู้เขียน)

  • คุณสามารถทำการประมวลผลข้อมูลทั้งหมดในระบบเดียวกัน โดยทั่วไปเมื่อใช้งานเล็กน้อยกระบวนการสร้างรูปแบบเต็มสามารถเป็นไปโดยอัตโนมัติ (แม้กระทั่งบางแง่มุมที่ทันสมัย ) หลีกเลี่ยงความต้องการการประมวลผลด้วยตนเองในซอฟต์แวร์เช่น Adobe Illustrator นี่เป็นสิ่งสำคัญเมื่อในนาทีสุดท้ายคุณพบปัญหาเล็กน้อยและจำเป็นต้องสร้างตัวเลขขึ้นมาใหม่

จุดอ่อน

  • การมีตัวเลขที่มีหลายแผนการย่อยและการจัดตำแหน่งที่แม่นยำระหว่างระบบพิกัดของแผนการย่อยนั้นอาจเป็นเรื่องยาก

    SciDraw (บุคคลที่สาม) การแก้ไขแพคเกจนี้และให้การควบคุมที่มีรายละเอียดทุกแง่มุมของรูปทุก ข้อดีของแพ็คเกจนี้คือการพยายามตั้งค่าตัวเลขให้ดีขึ้น

  • กราฟิก 3D ไม่ส่งออกเป็นรูปแบบเวกเตอร์ได้ดี แม้ว่าการส่งออกเวอร์ชันบิตแมปนั้นถือว่าใช้ได้

  • หากสถาบันของคุณยังไม่มีใบอนุญาตก็จะต้องเสียเงิน



5

ขุดลึกลงไปในแปลง PGF:

1) สามารถทำแผนภาพ 3 มิติ: python-matplotlib ไม่สามารถทำได้ gnuplot น่าเกลียดในการเปรียบเทียบ

2) มีแบบอักษรที่สอดคล้องกันในขนาดและตระกูลด้วยเอกสารพื้นฐาน)

3) สามารถ templated สำหรับ colorchemes เฉพาะ

ไม่มีอะไรที่เหมือนกับในตลาด :)


1
matplotlib มีโปรแกรมสร้างกราฟ 3 มิติ มันค่อนข้างอ่อนแอ แต่ก็ใช้งานได้ดีสำหรับการแสดงภาพอย่างรวดเร็ว
meawoppl

+1 อย่างแน่นอน เมื่อพูดถึงพล็อตคุณภาพการตีพิมพ์ไม่มีอะไรสามารถเอาชนะได้ เสียบด้านหน้า: คำถามและคำตอบของฉันใน pgfplots บน TeX.sx: tex.stackexchange.com/search?q=user:9043+[pgfplots] ดูเพิ่มเติมtexample.net/tikz/examples/pgfplotsตัวอย่างและคู่มือที่ครอบคลุมมาก
qubyte

ด้วยแผนการแปลง PGF ฉันมีปัญหาที่คุณไม่สามารถสันนิษฐานได้ว่าผู้เผยแพร่โฆษณาสนับสนุนเท่านั้น คุณจะทำอย่างไรถ้าเวิร์กโฟลว์ของคุณขึ้นอยู่กับมัน ฉันเคยลงเอยด้วยการพิมพ์ตัวเลขก่อนแล้วจึงรวมผลลัพธ์ที่ได้ไปยังไฟล์หลักซึ่งไม่ได้ขึ้นอยู่กับแผนการของ PGF อีกต่อไปซึ่งไม่สะดวกจริงๆ มีวิธีที่ฉลาดกว่านี้ไหม?
Christian Waluga

1
@ChristianWaluga: คุณสามารถใช้คลาส "แบบสแตนด์อโลน" ซึ่งจะช่วยให้คุณสร้างภาพ PDF / EPS โดยใช้รูปภาพ PGF ที่คุณได้เตรียมไว้สำหรับบทความ จากนั้นคุณสามารถแทรก PDF ลงในข้อความต้นฉบับของบทความด้วย includegraphics
tmaric

4

ฉันพบว่า Tecplot มีประสิทธิภาพค่อนข้างมากเมื่อพูดถึงการสร้างภาพข้อมูลและการจัดการข้อมูล


4
Tecplot เกี่ยวกับอะไรที่ทำให้มันทรงพลังมาก? คุณลักษณะใดที่คุณพบว่ามีประโยชน์เป็นพิเศษ
Paul

4

ฉันจะพยายามให้ความเห็นเกี่ยวกับประสบการณ์ที่ จำกัด ของฉันซึ่งครอบคลุมเพียงไม่กี่ประเภทเท่านั้น: แปลงข้อมูล 2 มิติ, scatterplots และไดอะแกรมที่ใช้กราฟ (ต้นไม้และกราฟผังงาน); แต่ก่อนอื่นให้ฉันเบี่ยงเบนจากคำถามเล็กน้อย:

ก่อนอื่นผมอยากจะบอกว่าความสำคัญของการผลิตแปลงปลูกที่มีคุณภาพสูงนั้นมักถูกมองข้ามไป พล็อตไม่เพียง แต่สำหรับการแสดงข้อมูลแต่ถ้าใช้อย่างมีประสิทธิภาพพวกเขาสามารถสื่อสารความคิดที่ซับซ้อนซึ่งมักจะไม่สามารถแสดงอย่างชัดเจนในข้อความ มันดูเหมือนว่าฉันว่านี้ไม่ได้เป็นสถานที่ที่เหมาะสมเพื่อหารือเกี่ยวกับสิ่งที่ถือว่าเป็นประโยชน์และข้อเสียของการพล็อตที่ดี แต่ถ้าสนใจดูที่นี่

ประการที่สองฉันรู้สึกเสียใจที่ใช้พล็อตแบบครึ่งอบมากกว่าการใช้เวลากับพล็อตคุณภาพสูง เหตุผลก็คือพล็อตที่ไม่ดีสามารถโกหกคุณตัวอย่างเช่นหากใช้พล็อตแบบครึ่งสำหรับการดูข้อมูลอย่างรวดเร็วซึ่งคุณอาจไม่ได้ถูกทำให้เป็นมาตรฐานหรือโดยใช้พล็อตที่ไม่ดีเพื่อทำการเปรียบเทียบภาพ (ดวงตามักให้อภัยหรือทำให้เข้าใจผิดมาก) ดังนั้นฉันจึงมักจะแนะนำให้เตรียมแปลงราวกับว่าพวกเขากำลังจะแสดงให้คนที่ไม่คุ้นเคยกับผลลัพธ์ สิ่งนี้สามารถช่วยคุณประหยัดเวลาและปรับปรุงงานของคุณ นอกจากนี้คุณยังได้รับประโยชน์เพิ่มเติมจากเอกสารประกอบการนำเสนอที่จะพร้อมสำหรับการนำเสนอ / สัมมนา / กระดาษฉบับต่อไป

ตอนนี้เพื่อตอบคำถาม ,

จากประสบการณ์ของฉันมันจะดีกว่าเสมอที่จะแยกการประมวลผลข้อมูลจากเครื่องมือพล็อตจริงและเครื่องมือจัดการภาพ สำหรับการประมวลผลข้อมูลฉันใช้ไพ ธ อนเนื่องจากมีความยืดหยุ่นสูงและฉันไม่พบรูปแบบไฟล์ที่ไม่สามารถจัดการได้อย่างง่ายดายผ่านไพ ธ อน นอกจากนี้ไลบรารี numpy และ scipy สามารถเป็นเครื่องมือการจัดการที่มีประสิทธิภาพสำหรับข้อมูลตัวเลข

ภายในหลามฉันไม่เห็นเครื่องมือการวางแผนที่ให้คุณควบคุมรายละเอียดการจัดรูปแบบทั้งหมดได้ ฉันพบว่ามันเป็นรายละเอียดที่สร้างความแตกต่างอย่างมากเมื่อคุณพยายามที่จะรวมรูปภาพในขณะที่ทำการฟอร์แมตกระดาษในลาเท็กซ์ ตัวอย่างเช่นการควบคุมช่องว่างและสัดส่วนของพื้นที่รอบ ๆ อาจเป็นเรื่องปวดหัวกับ matplotlib (เป็นไปไม่ได้ แต่ไม่คุ้มค่ากับเวลาของฉัน) นี่เป็นสิ่งสำคัญมากถ้าคุณมีพื้นที่ จำกัด เนื่องจากในวารสารและการประชุม เอกสาร.

จากประสบการณ์ของฉันฉันพบว่าGNUPLOTเป็นเครื่องมือที่ดีที่สุดในการจัดรูปแบบและสร้างแปลง 2D และแผนการกระจาย มันช่วยให้คุณสามารถควบคุมรายละเอียดทั้งหมดของพล็อตของคุณ และคุณสามารถสร้างพล็อตคุณภาพสูง (ภาพเวกเตอร์) ในแบบขาวดำหรือสี การควบคุมระดับสูงทำให้ GNUPLOT เป็นเรื่องยากที่จะเรียนรู้มากขึ้นและบางครั้งสิ่งง่าย ๆ อาจใช้เวลาทำงานบ้าง แต่ถ้าคุณเริ่มจากตัวอย่างมันจะทำให้สิ่งต่าง ๆ ง่ายขึ้น ฉันมักจะดูที่นี้สองเว็บไซต์สำหรับแรงบันดาลใจให้ดูที่เว็บไซต์ที่ไม่ให้คำถามที่พบบ่อยหรือการสาธิตเป็นทางการที่นี่

บางครั้งพล็อตที่สร้างโดย GNUPLOT อาจมีขนาดค่อนข้างใหญ่ (ในช่วง MB) และสมุดบันทึกอาจปฏิเสธไฟล์ (สิ่งนี้เกิดขึ้นกับฉันด้วยสแกตเตอร์แปลงที่มีสีสันมาก) ฉันใช้แล้วฉันขอแนะนำImagemagickเครื่องมือบรรทัดคำสั่งที่ให้คุณแปลงแก้ไขและบีบอัดภาพ (ฉันใช้เพื่อสร้างและแก้ไข jpegs คุณภาพสูงในขณะที่ลดขนาดไฟล์ลงอย่างมาก) ฉันลองใช้เครื่องมืออื่น ๆ ที่ใช้การบีบอัดข้อมูลอัตโนมัตินี่เป็นปัญหาที่เกิดขึ้นเป็นพิเศษเนื่องจากความสมดุลที่ละเอียดอ่อนระหว่างภาพวัตถุและการบีบอัด

ฉันยังได้สร้างส่วนแบ่งที่เป็นธรรมของไดอะแกรม (บ่อยครั้งสำหรับการนำเสนอ) ฉันพบว่าถ้าฉันจะใช้ไดอะแกรมในครั้งเดียว (ไม่ใช่กระดาษ) ดังนั้นแอปพลิเคชั่น Keynote (OSX) และการบันทึกเป็น pdf นั้นดีพอ อย่างไรก็ตามเมื่อใช้ภาพหลายครั้งคุณภาพของงานนำเสนอมีความสำคัญมากกว่าและTikZเป็นเครื่องมือที่ฉันต้องการ ฉันพบว่า TikZ ใช้งานยาก แต่ถ้าคุณเริ่มจากตัวอย่างมันง่ายกว่ามาก

ในที่สุดฉันทำงานส่วนใหญ่จากบรรทัดคำสั่งเพื่อรวมเครื่องมือต่าง ๆ ที่ฉันใช้กับ bash หรือ python


3

โหวตอย่างรวดเร็วของฉันคือ QtiPlot

แม้ว่ามันจะไม่สมบูรณ์แบบ แต่ก็ให้การผสมผสานที่ง่ายที่สุดของความง่ายในการใช้งาน GUI พร้อมกับการเขียนสคริปต์ของงูใหญ่ดังนั้นสิ่งที่คุณต้องทำคือ "Qtiplot / Python / (Illustrator หรือ Inkscape)" Qtiplot สามารถขยายได้ดังนั้นคุณสามารถสร้างสคริปต์ / มาโครของคุณเองซึ่งสามารถรันคำสั่ง python เพื่อเปิดและประมวลผลข้อมูลจากนั้นดัมพ์ลงในตาราง จากนั้นคุณสามารถกำหนดเองด้วยตนเองหรือโดยอัตโนมัติ นอกจากนี้ยังเป็นไปได้ที่จะกำหนดค่าให้ทำงานกับการเรียงพิมพ์ LaTeX ด้วยเครื่องเรียงพิมพ์อินเทอร์เน็ตที่มีให้ใช้งานหรือเครื่องเรียงพิมพ์ท้องถิ่นเพื่อให้คุณสามารถวางสูตรคณิตศาสตร์ไว้ในชื่อเรื่อง / แกน / มาร์กอัป

แปลงสามารถส่งออกไปยังรูปแบบใดก็ได้ที่คุณต้องการ แต่รูปแบบที่ทำงานได้ดีที่สุดคือ SVG อย่างไม่ต้องสงสัย ไฟล์ SVG สามารถสัมผัสได้ใน inkscape หากคุณต้องการซึ่งยังมีความสามารถในการเรียงพิมพ์ LaTeX

ในขณะที่ MatPlotLib นั้นยอดเยี่ยมข้อเสียเปรียบที่ใหญ่ที่สุดคือการต้องเขียนโค้ดด้วยมือทุกอย่าง QtiPlot นั้นยอดเยี่ยมเพราะคุณสามารถเขียนสคริปต์ / ประมวลผลข้อมูลอัตโนมัติและวางแผนทั้งหมดด้วยฟังก์ชั่น Python ที่ยอดเยี่ยมจากนั้นส่งผ่านพล็อตการตัดแบบคร่าวๆไปยัง gui ที่จะช่วยให้คุณปรับแต่งมันด้วยมือ ซึ่งเร็วกว่ามากในแต่ละกรณีสำหรับการวิเคราะห์ข้อมูล คุณยังสามารถกำหนดขนาดได้อย่างแม่นยำด้วยสคริปต์และจัดการมิติด้วย GUI สิ่งที่คุณไม่สามารถทำได้ด้วย matplotlib

ฉันคิดว่ามันขึ้นอยู่กับว่าคุณรู้สึกอย่างไรกับโซลูชั่นการวางแผน QtiPlot ฉันพบว่ามันมีความสามารถมาก แต่มันเป็นช่วงการเรียนรู้ที่ค่อนข้างสูงชัน


3

ฉันประหลาดใจที่ไม่มีใครพูดถึงเครื่องมือที่ยอดเยี่ยมของ Nico Schlömer matlab2tikzและmatplotlib2tikzเลย หากคุณกำลังใช้ LaTeX สำหรับการจัดเตรียมเอกสารและ Matlab หรือ Python สำหรับการประมวลผลข้อมูลคุณสามารถรับพล็อตเวกเตอร์คุณภาพสูงซึ่งคุณสามารถโพสต์กระบวนการลงในเนื้อหาของหัวใจของคุณ:

  1. เตรียมแปลงของคุณใน Matlab หรือ Python รวมถึงแกนฉลากตำนาน ฯลฯ ไม่ต้องกังวลกับการจัดรูปแบบ TeX
  2. โทรmatlab2tikz('figure.tex')(หรือmatplotlib2tikz)
  3. แก้ไขfigure.texเพื่อลิ้มรส (แทนที่ข้อความฉลากด้วยคณิตศาสตร์ที่เหมาะสมเปลี่ยนสีความกว้างของเส้นการจัดวางคำอธิบายลักษณะแกน ฯลฯ ) ดูที่คู่มือ pgfplots (หรือคำถามมากมายเกี่ยวกับ pgfplotsในการแลกเปลี่ยน TeX)
  4. ในรูปของคุณแทนที่จะincludegraphicsใส่\input{figure.tex}(และอย่าลืมใส่\usepackage{pgfplots}ไว้ในบทนำ)
  5. สำหรับการส่งใช้ห้องสมุด externalization (ดูบทที่ 7 ของคู่มือ) เพื่ออบรูปของคุณเป็น pdf และเพียงแทนที่โดย\input{figure.tex}\includegraphics{figure.pdf}

2

หากคุณไม่ได้มองหาการเขียนสคริปต์ลองดูที่ MagicPlot มันไม่ได้เป็นคุณลักษณะที่อุดมไปด้วยเป็นแหล่งกำเนิด (เช่นสามารถสร้างแปลง 2D เท่านั้น) แต่ฉันไม่เคยประสบปัญหากับความกว้างของเส้นและคุณสมบัติอื่น ๆ พล็อตจะดีต่อต้านนามแฝงแม้ว่าการวาดใหม่จะเร็วพอ รวมถึงการติดตั้งที่มีประโยชน์


0

Tecplot 360 นั้นดีสำหรับการประมวลผลข้อมูลขนาดใหญ่และการทำแผนคุณภาพสิ่งพิมพ์ มีอินเทอร์เฟซ add-on และสคริปต์ที่มีประสิทธิภาพในการประมวลผลข้อมูล ดูเหมือนว่าฉันจะทำทุกสิ่งที่คุณต้องการสำหรับการประมวลผลภายหลัง

ข้อผิดพลาดทั่วไปคือหันไปใช้ Excel ไม่มันไม่จำเลย์เอาต์, ช่วง X, แผนที่สี มันไม่เคลื่อนไหว มันใช้สเปรดชีตขนาดใหญ่ที่น่าเกลียดในการทำงานกับข้อมูล

แน่นอนว่าคุณจะไม่พบเครื่องมือที่ทำทั้งโพสต์การประมวลผลและการแก้ไขข้อความและการเลือกโปรแกรมแก้ไขข้อความที่เหมาะสมสำหรับงานพิมพ์ของคุณเป็นอีกคำถามที่สำคัญ อย่าใช้ MS Word ผู้จัดการการอ้างอิงของมันน่าเกลียด ฉันใช้ LyX หรือเครื่องมือลาเท็กซ์อื่น ๆ สำหรับระบบปฏิบัติการที่ฉันใช้

โอ้และเมื่อคุณต้องเผยแพร่ PDF ให้รวมลิงก์ไปยัง LaTeX, Word หรือรูปแบบใดก็ตามที่มีคณิตศาสตร์ที่สามารถอ่านได้ ในรูปแบบ PDF ไม่ใช่

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