Csvgraph ได้รับการออกแบบมาเพื่อให้ดูกราฟของไฟล์ csv ที่อาจมีขนาดใหญ่มาก (GB) ได้อย่างรวดเร็ว (สำหรับการเปรียบเทียบ สเปรดชีตส่วนใหญ่จะจำกัดอยู่ที่ 1,048,576 แถว) Csvgraph ไม่มีขีดจำกัดในตัว แต่ท้ายที่สุดแล้ว มันถูกจำกัดด้วย RAM ที่มีอยู่ของคุณ (เวอร์ชัน 32 บิตจะใช้ RAM สูงสุด 4GB หากมีให้ใช้งาน ในขณะที่เวอร์ชัน 64 บิตจะใช้ RAM และเสมือนที่มีอยู่ทั้งหมด หน่วยความจำ). แม้ว่าไฟล์จะมีขนาดใหญ่มากก็ตาม การอ่านก็จะรวดเร็ว และการซูมก็สามารถทำได้ทันที
ระบบจะถือว่าไฟล์ CSV เหล่านี้มีส่วนหัวของคอลัมน์ในบรรทัดแรก ดังนั้นไฟล์ CSV ทั่วไปจึงเริ่มทำงาน:
"เวลา (วินาที)", "โคล-2", "โคล-3", "โคล-4", "โคล-5"
99950,20,0,20,20
99950.1,10,1,11,12
ค่าจะอ่านเป็นตัวเลขทศนิยม จึงจำกัดไว้เพียงตัวเลขระหว่าง +/-3.4e+38 และตัวเลขที่ไม่ใช่ศูนย์ที่น้อยที่สุดคือประมาณ 1.4e-45 โดยมีเลขนัยสำคัญประมาณ 7 หลัก
เช่นเดียวกับการแปลงข้อมูลอย่างง่ายในไฟล์ csv ข้อมูลสามารถกรองได้หลายวิธี (รวมถึงตัวกรองค่ามัธยฐาน พหุนามพอดี และ FFT's) เช่นเดียวกับการคำนวณจากข้อมูล csv (เช่น ความแตกต่างสัมบูรณ์ระหว่างข้อมูลใน 2 คอลัมน์ของไฟล์ csv สามารถพล็อตได้อย่างง่ายดาย (เช่น "abs($3-$4)" จะพล็อตค่าความแตกต่างสัมบูรณ์ระหว่างคอลัมน์ 3 และ 4)
ไฟล์ csvgraph.pdf มีคู่มือฉบับเต็มและตัวอย่างการใช้งานจำนวนหนึ่ง
1v0 - เปิดตัว GitHub ครั้งแรก
1v1 - 6/1/2021- แก้ไขปัญหาที่อาจเกิดขึ้นกับส่วนประกอบ DC ของ FFT เพิ่มเมนู/วิธีใช้/คู่มือ คู่มือที่อัปเดต
1v2 – 24/1/2021 – แก้ไขข้อผิดพลาด - “inf” ในไฟล์ csv จะถูกอ่านเป็นตัวเลขที่มีขนาดใหญ่มาก (อนันต์) ซึ่งทำให้เกิดปัญหาเมื่อ csvgraph พยายามปรับขนาดตัวเลขและวาดกราฟ เพิ่มตัวเลือกอื่น ๆ อีกมากมายสำหรับ "การกรอง" รวมถึงเลขชี้กำลัง กำลัง ไฮเปอร์โบลิก และ sqrt
1v3 – 2/3/2021 - เพิ่มตัวเลือกการปรับเส้นโค้งเพิ่มเติม y=mx, y=mx+c พร้อม GMR ข้อผิดพลาดสัมบูรณ์ขั้นต่ำและข้อผิดพลาดสัมพัทธ์ขั้นต่ำ และ y=a x+b sqrt(x)+c
2v0 – 17/2/2021 – การเปลี่ยนแปลงภายในครั้งใหญ่เพื่อลดการใช้ RAM และปรับปรุงความเร็ว ไม่มีการเปลี่ยนแปลงฟังก์ชั่น
2v1 – 21/3/2021 – เพิ่มตัวเลือกการปรับเส้นโค้งเพิ่มเติม y=a+b sqrt(x)+c x+d*x^1.5, y=(a+bx)/(1+cx), y=(a+bx+cx^2)/(1+dx+ เช่น ^ 2) พหุนามบน sqrt(x) ของลำดับที่ผู้ใช้กำหนดและฟังก์ชันตรรกยะ (พหุนาม/พหุนาม) กับลำดับที่ผู้ใช้กำหนด
2v2 - 4/5/2021 - อนุญาตให้ใช้ $T1 ถึง Tn ในนิพจน์เพื่อใช้ค่าจากการติดตามที่มีอยู่ในกราฟ การติดตามมีหมายเลขตั้งแต่ 1 หมายเลขการติดตามไม่ถูกต้อง (ใหญ่เกินไป) คืนค่า 0 ผู้ใช้สามารถกำหนดลำดับของตัวกรองเชิงเส้นได้แล้ว สิ่งนี้ถูกนำมาใช้เป็นตัวกรอง Butterworth ลำดับที่ n (10*ลำดับ dB/ทศวรรษ) Order=0 ไม่มีการกรอง Order =1 ให้การกรองเหมือนเดิม "ตัวกรอง" สำหรับอินทิกรัลและอนุพันธ์ที่เพิ่ม ขณะนี้ตัวกรองทั้งหมดรายงานความคืบหน้าเป็น % (ก่อนหน้านี้ข้อผิดพลาด min.abs และข้อผิดพลาดที่เกี่ยวข้องขั้นต่ำไม่ได้รายงานความคืบหน้าและอาจค่อนข้างช้า) ตัวเลือกในการข้าม N บรรทัดก่อนที่จะเพิ่มส่วนหัว csv สำหรับกรณีที่ส่วนหัว csv ไม่ได้อยู่บนแถวที่ 1 ของไฟล์ เพิ่มหมายเลขคอลัมน์ลงในกล่องรายการคอลัมน์ X และคอลัมน์ Y เพื่อให้ง่ายต่อการเลือกคอลัมน์เมื่อชื่อไม่ได้อธิบายมากนัก (หรือขาดหายไป ).
2v3 - 23-1-2022 เพิ่ม y=m x log(x)+c การปรับเส้นโค้ง ฟังก์ชันการเรียงลำดับและค่ามัธยฐานได้รับการปรับปรุงเพื่อให้เร็วขึ้น - การเรียงลำดับจะใช้โปรเซสเซอร์ที่มีอยู่ทั้งหมดเพื่อปรับปรุงความเร็วในการดำเนินการ
2v4 - 3-2-2022 แก้ไขข้อผิดพลาด โดยใช้ตัวแปร $Tn ในนิพจน์พร้อมชุดของค่าแกน x ที่
ไม่เรียงลำดับตัวเลข (และจำเป็นต้องเรียงลำดับ) ทำงานไม่ถูกต้องใน 2v2 และ 2v3 – ขออภัย
2v5 - 16-2-2022 การรายงานบรรทัดที่ไม่ถูกต้องในไฟล์ csv ดีขึ้น เมื่ออ่านครั้ง ไม่จำเป็นต้องเริ่มต้นเวลาเป็นศูนย์
2v6 – 27/2/2022 – ตัวกรอง Median1 ได้รับการปรับปรุงแล้ว สำหรับจุดข้อมูล <=10,000 จุด ขณะนี้มีความแน่นอน และ (มาก) มากขึ้นสำหรับการติดตามที่แม่นยำด้วยจุดข้อมูลจำนวนมากขึ้น ตำแหน่งของคำอธิบายการติดตามถูกย้ายไปทางซ้ายเพื่อให้สามารถเห็นข้อความได้มากขึ้น
2v7 – 22/3/2022 - พิมพ์ความถี่ -3dB สำหรับตัวกรองเชิงเส้น แสดงให้ผู้ใช้เห็น 1 ตัวอย่างข้อผิดพลาดทุกประเภทในไฟล์ csv หากมีวันที่ปรากฏบนบางบรรทัดของไฟล์ csv ให้ตั้งค่าสถานะบรรทัดที่ไม่มีวันที่ซึ่งอาจเป็นข้อผิดพลาดที่อาจเกิดขึ้นเมื่อตั้งค่าคอลัมน์ x เป็นเวลา อัลกอริธึมค่ามัธยฐาน (ตัวกรองค่ามัธยฐานแบบเรียกซ้ำ) ใหม่ (แน่นอน) ซึ่งจะกลับไปเป็นการสุ่มตัวอย่างหากเวลาดำเนินการนานขึ้น ค่ามัธยฐานและค่ามัธยฐาน 1 เปลี่ยนชื่อเป็นตัวกรองค่ามัธยฐานแบบเรียกซ้ำและตัวกรองค่ามัธยฐานมาตรฐาน
2v8 - 23/5/2022 – เพิ่มความสามารถในการอ่านวันที่และเวลาเนื่องจากค่า x csvsave เพิ่ม % เสร็จสมบูรณ์ และ (อย่างมีนัยสำคัญ) เร่งความเร็วในการเขียนลงไฟล์ csvsave จะประมาณค่าหากจำเป็น ดังนั้นค่า x ไม่จำเป็นต้องเหมือนกันในทุกการติดตาม
2v9 – 6/7/2022 – แก้ไขข้อผิดพลาด – หาก x-offset ไม่เท่ากับ 0 และการติดตามหลายรายการที่เพิ่ม x-offset ที่ไม่ถูกต้องจะถูกนำไปใช้กับการติดตามครั้งที่ 2 ที่เพิ่มเป็นต้นไป วันที่และเวลาในการอ่านมีความละเอียดสูงขึ้น ดังนั้นหากเลือก "เวลาเริ่มต้นจากศูนย์" ผลลัพธ์อาจมีความแม่นยำมากขึ้นเล็กน้อย
3v0 – 15/8/22 - ไม่เคยเปิดตัว – เวอร์ชัน 64 บิตแรก
3v1 – 17/8/22 - ไม่เคยวางจำหน่าย ซอร์สโค้ดถูกปรับโครงสร้างใหม่โดยแยก “ไฟล์ทั่วไป” (ที่อาจใช้ในโปรแกรมอื่น) ออก ไฟล์บางไฟล์ถูกย้ายจาก C++ ไปยัง C โดยที่เป็นคอมไพเลอร์ C และ C++ ล้วนๆ ทำให้เกิดคำเตือนมากมาย
3v2 – 14/9/2022 – การเปิดตัว 64 บิตครั้งแรก เวอร์ชัน 64 บิตจะใช้หน่วยความจำที่มีอยู่ทั้งหมด ในขณะที่เวอร์ชัน 32 บิตจำกัดอยู่ที่ RAM 4GB นอกเหนือจากฟังก์ชันการทำงานที่เหมือนกันแล้ว เวอร์ชัน 64 บิตสามารถอ่านไฟล์ที่มีขนาดมากกว่า 2^32 บรรทัด ส่วนเวอร์ชัน 32 บิตจะหมด RAM ก่อนที่จะสามารถอ่านหลายบรรทัดได้
การเปลี่ยนแปลงเล็กน้อย: เมื่อมีการเรียกใช้เมนูมาตราส่วนหลายครั้งก่อนที่มาตราส่วนจะเปลี่ยนแปลงเล็กน้อยมาก - แก้ไขแล้ว ช่วงขนาดตัวอักษรที่อนุญาตสำหรับชื่อหลักและชื่อแกน X/Y ขยายแล้ว ขณะนี้ FFT ใช้คอร์โปรเซสเซอร์หลายคอร์ หากมีเพื่อให้ผลลัพธ์ที่รวดเร็วยิ่งขึ้น
3v3 - 26/9/2022 - เปลี่ยนเป็นเวอร์ชัน 64 บิตเพื่อให้สามารถโหลดไฟล์ที่ใหญ่ขึ้นได้ (ใช้หน่วยความจำเสมือนและ RAM)
3v4 - 1-10-2022 - แก้ไขปัญหาการจัดการ dpi เมื่อใช้จอภาพหลายจอในเวอร์ชัน 64 บิต
3v5 – 11/6/2022 – ด้วยการคลิกเมาส์ขวาเมื่อเลือกเส้น จากนั้นความชันของเส้นนี้ (dy/dx) จะถูกมอบให้ เช่นเดียวกับพิกัดของปลายทั้งสองของเส้น สามารถกำหนดชื่อไฟล์ได้บนบรรทัดคำสั่ง (ในเวอร์ชันก่อนหน้า ซึ่งใช้ไม่ได้กับเวอร์ชัน 64 บิต) ตอนนี้อนุญาตให้ใช้นิพจน์ที่มีฟังก์ชันสำหรับแกน y (เช่น max($2,0) )
3v6 3/6/2023 – ส่วนหัวคอลัมน์แบบยาวทำให้แถบเลื่อนถูกเพิ่มลงในกล่องรายการ X & Y โดยอัตโนมัติเพื่อให้มองเห็นได้ทั้งหมด บันทึกช่วง x บนหน้าจอเมื่อเพิ่ม CSV ลงในเมนูไฟล์ เพิ่มตัวเลือก (ช่องทำเครื่องหมาย) เพื่อเพิ่มชื่อฐานของชื่อไฟล์ลงในคำอธิบายของการติดตามบนกราฟ ซึ่งมีประโยชน์หากอ่านคอลัมน์เดียวกันจากหลายไฟล์ ชื่อแกน Y ถูกเพิ่มโดยอัตโนมัติ เว้นแต่ผู้ใช้จะระบุชื่อ (ขึ้นอยู่กับส่วนหัวคอลัมน์ของการติดตามครั้งที่ 1 ที่เพิ่ม) เพิ่มตัวเลือกในการโหลด X เป็นค่า/60 (วินาที->นาที), Val/3600 (วินาที->ชม.), val/86400 (วินาที->วัน) การจัดการข้อผิดพลาดสำหรับค่า X ในรูปแบบวันที่/เวลาที่ผู้ใช้กำหนดได้รับการปรับปรุง และอนุญาตให้ใช้ช่องว่างต่อท้ายแล้ว
3v7 10/6/2023 – เพิ่มกล่องกาเครื่องหมาย "แสดงตำนาน" เปลี่ยนเป็นการใช้คอมไพเลอร์ Builder C++ 11.3 ตอนนี้ชื่อเรื่องอยู่กึ่งกลางเหนือกราฟ การเปลี่ยนแปลงขนาด แบบอักษร ฯลฯ เล็กน้อยใน csvgraph
3v8 7/4/2023 csvsave โดยที่การติดตามครั้งที่ 2 มีคะแนนน้อยกว่าการติดตามครั้งที่ 1 ทำให้เกิดข้อผิดพลาด - แก้ไขแล้ว
3v9 26/2/2024
ขณะนี้สามารถเปิดไฟล์ที่ Excel เปิดอยู่แล้ว (และข้อความแสดงข้อผิดพลาดจะดีกว่าหากไม่สามารถเปิดไฟล์ได้) ดักจับผู้ใช้ที่กดปุ่ม "คำสั่ง" ได้ดีขึ้นในขณะที่คำสั่งก่อนหน้ายังคงทำงานอยู่ ขณะนี้อนุพันธ์ใช้อัลกอริธึม Savitzky Golay 17 จุดพร้อมลำดับที่ผู้ใช้ระบุ (ใช้จริง 1->10 สามารถตั้งค่าเป็น 1->อนันต์โดยผู้ใช้) เพิ่มการปรับให้เรียบของ Savitzky Golay เป็นตัวเลือกการกรอง (25 คะแนน โดยผู้ใช้ระบุลำดับ จริงๆ แล้วใช้ 1->10 สามารถตั้งค่า 1->อนันต์โดยผู้ใช้) เพิ่มอนุพันธ์อันดับ 2 (d2y/d2x) ในรายการตัวกรองที่ใช้อัลกอริทึม Savitzky Golay 25 จุดพร้อมลำดับที่ผู้ใช้ระบุ (ใช้งานจริง 1->10 สามารถตั้งค่า 1->อนันต์โดยผู้ใช้) หากตัวเลขหายไปในคอลัมน์ที่อ้างถึงในนิพจน์ ระบบจะตั้งค่าเป็น nan เพิ่มค่าคงที่ "nan" สำหรับนิพจน์ หากนิพจน์ประเมินเป็น nan เส้นจะถูกข้ามไป นี่อาจเป็นวิธีที่มีประสิทธิภาพในการเลือกจุดสำหรับ csvgraph ที่จะแสดง เพิ่ม "ตัวแปร" x และบรรทัดในนิพจน์ x คือค่า x ปัจจุบัน และบรรทัดคือหมายเลขบรรทัดปัจจุบัน อัปเดตตัวจัดการนิพจน์เพื่อให้ nan==nan และ nan!=nan ทำงานตามที่คาดไว้ในนิพจน์
3v10 6/4/2024 เพิ่มตัวกรอง spline ที่เรียบแล้ว
4v0 7/3/2024 ตอนนี้ Csvgraph ใช้งานได้กับข้อความ Unicode (uft-8) ดังนั้นจึงสามารถใช้อักขระใดก็ได้ นั่นหมายความว่าไฟล์ csv ที่เข้ารหัส uft-8 จะถูกอ่านอย่างถูกต้อง และ BOM (Byte Order Mark) ของไฟล์นั้น หากมีการประมวลผลอย่างถูกต้อง ส่วนหัวของคอลัมน์ ชื่อหลัก และชื่อแกนสามารถมีอักขระ utf8 ได้ Utf-8 เข้ากันได้กับ ASCII 7 บิต ดังนั้นไฟล์ csv "ทั่วไป" ควรได้รับการประมวลผลเหมือนเมื่อก่อน เมื่อบันทึกไฟล์ csv คุณมีตัวเลือกในการระบุว่าไฟล์นั้นถูกสร้างขึ้นด้วย BOM ชื่อไฟล์และเส้นทางไปยังไฟล์อาจมีอักขระ Unicode (utf-8) โปรดทราบว่าการบันทึกไฟล์ CSV ด้วย Excel เวอร์ชันล่าสุดจะสร้างไฟล์ csv ในรูปแบบ utf-8 พร้อมด้วย BOM และจำเป็นต้องมี BOM เพื่อให้ Excel จดจำไฟล์ csv หากคุณลองเปิดไฟล์ดังกล่าว การเปลี่ยนแปลงอื่นๆ: • รูปภาพบนหน้าจอสามารถบันทึกเป็นรูปแบบ BMP, jpg, PNG, gif, tiff และ wdg - โอเปอเรเตอร์สามารถใช้งานได้อย่างอิสระในนิพจน์ เช่น ($1==0?0:1) ได้รับการยอมรับว่าเป็นนิพจน์ที่ถูกต้องแล้ว (ก่อนหน้านี้จะใช้ได้เฉพาะเมื่อถอดวงเล็บออกเท่านั้น) • สำหรับการถดถอยในพหุนามของ sqrt(x) ให้ชี้ด้วยค่าลบ x ตอนนี้ถูกละเลย • อนุญาต X และ x ในนิพจน์ (มีประโยชน์ในการตัดและวางสมการ [ เช่น จากเส้นโค้งที่พอดี] อาจใช้ X)
Cvsgraph เป็นโปรแกรมพกพาที่ไม่ต้องติดตั้ง
คัดลอกไฟล์ csvgraph32.exe หรือ csvgraph64.exe ไปยังตำแหน่งใดก็ได้บนคอมพิวเตอร์ของคุณ (หรือเรียกใช้จากแท่ง USB หรือที่คล้ายกัน) เพิ่ม csvgraph.pdf ลงในไดเร็กทอรีเดียวกันเพื่อให้สามารถเข้าถึงคู่มือจากภายใน csvgraph (เมนูช่วยเหลือ/คู่มือ)
ทางลัดบนเดสก์ท็อปของคุณทำให้การเรียกใช้งาน csvgraph เป็นเรื่องง่าย
ดูไฟล์ LICENSE เพื่อดูรายละเอียด แต่ csvgraph นั้นฟรีสำหรับการใช้งานเชิงพาณิชย์และไม่ใช่เชิงพาณิชย์
csvgraph ทำงานบน Windows (10 32 หรือ 64 บิต) ควรทำงานบนเวอร์ชันก่อนหน้า (ถึง Vista) หรือภายใต้ Wine บน Linux แต่ยังไม่ผ่านการทดสอบ
จากการเปิดตัว 3v7 ซอร์สโค้ดได้รับการคอมไพล์ด้วย Embarcadero® C++ Builder 11.3 - ไฟล์โปรเจ็กต์ที่เหมาะสมจะรวมอยู่ในไฟล์เก็บถาวร ควรคอมไพล์โดยไม่มีข้อผิดพลาดหรือคำเตือน ควรจะง่ายต่อการย้ายไปยัง C++ Builder เวอร์ชันล่าสุด (อย่างน้อยสำหรับเป้าหมาย Windows 32/64 บิต) แต่ก็ไม่ยากนักที่จะเปลี่ยนกลับเป็นเวอร์ชันก่อนหน้า (กลับไปเป็น Builder C++ V5) หาก จำเป็น.
ซอร์สโค้ดหลายส่วนอาจเป็นที่สนใจหากคุณไม่ได้ใช้ C++ Builder - ตัวอย่างเช่น atof.c เป็นส่วนหนึ่งของ ya-sprintf ดู https://github.com/pj-miller/ya-sprintf
expr-code.c มีรูทีนมากมายที่มีประโยชน์โดยทั่วไป รวมถึงตัวประเมินนิพจน์ทั่วไปที่รวดเร็วสำหรับนิพจน์ที่เก็บไว้ในสตริง
UScientificGraph.cpp มีการใช้งานตัวกรองค่ามัธยฐานที่มีประสิทธิภาพและการใช้งานแบบพหุนามพอดี ซึ่งทั้งสองอย่างนี้ทำงานได้ดีกับจุดข้อมูลจำนวนมาก และการใช้งานสำหรับสิ่งเหล่านี้เชื่อกันว่าแปลกใหม่ นอกจากนี้ยังมีอัลกอริธึมการตัดบรรทัดที่รวดเร็วซึ่งช่วยให้สามารถซูมเข้า/ออก "ไม่สิ้นสุด" ได้