สคริปต์บรรทัดคำสั่งซึ่งใช้ Microsoft Excel เพื่อลงจุดกราฟจากไฟล์ CSV
โครงการนี้เดิมเขียนโดย Antoine พื้นที่เก็บข้อมูลนี้เป็นเพียงทางแยกของโครงการดั้งเดิมที่เขาสร้างขึ้น ฉันไม่รู้จักเขาเป็นการส่วนตัว ฉันชอบงานนี้ มันยังไม่ได้อยู่บน GitHub (เท่าที่ฉันรู้) ดังนั้นฉันจึงสร้าง repo ที่นี่ ต่อไปนี้เป็นคำบรรยายโดยผู้เขียนต้นฉบับ ในกรณีที่มีความคิดเห็นหรือข้อเสนอแนะใด ๆ ให้ไปที่ไซต์ของผู้เขียนและรายงานปัญหาใด ๆ หรือขอการปรับปรุง ให้เปิดประเด็นที่นี่
ฉันสร้างต้นแบบซอฟต์แวร์โดยใช้ภาษาการเขียนโปรแกรมที่หลากหลาย ฉันมักจะต้องสร้างข้อมูลที่เปลี่ยนแปลงตามเวลาซึ่งส่วนใหญ่จะแสดงในรูปแบบตาราง อย่างไรก็ตาม นั่นไม่ใช่วิธีที่ดีที่สุดในการทำความเข้าใจว่าข้อมูลเปลี่ยนแปลงไปอย่างไรเมื่อเวลาผ่านไป เมื่อเปรียบเทียบกับการพล็อตข้อมูลเป็นกราฟ
ภาษาการเขียนโปรแกรมส่วนใหญ่ที่ฉันรู้จักไม่มีไลบรารี่ดั้งเดิมสำหรับพล็อตข้อมูลลงในกราฟ มันไม่ใช่งานง่าย ภาษาการเขียนโปรแกรมส่วนใหญ่มักต้องการไลบรารีภายนอกสำหรับการนำกระบวนการไปใช้ และแต่ละไลบรารีก็ไม่ได้ทำงานในลักษณะเดียวกัน
Excel เป็นแพลตฟอร์มดั้งเดิมสำหรับการแยกวิเคราะห์ไฟล์ค่าที่คั่นด้วยเครื่องหมายจุลภาค (CSV) และสามารถเขียนสคริปต์เพื่อลงจุดผลลัพธ์ลงในรูปภาพได้
วัตถุประสงค์ของสคริปต์นี้คือเพื่อให้ภาษาการเขียนโปรแกรมใดๆ ที่สร้างข้อมูลสามารถพล็อตข้อมูลลงในรูปภาพโดยบันทึกข้อมูลดิบลงในไฟล์ CSV จากนั้นใช้พลังของ Excel เพื่อพล็อตผลลัพธ์ลงในรูปภาพ
ส่วนต่อไปนี้แสดงรายการคุณสมบัติของสคริปต์ csvPlot :
สคริปต์มีข้อจำกัดบางประการซึ่งอธิบายไว้ที่นี่
ความละเอียดของภาพที่ส่งออกอาจแตกต่าง +- 1 พิกเซลจากที่ร้องขอในบรรทัดคำสั่ง นี่เป็นข้อจำกัดของวิธีที่ Excel ประมวลผลขนาดรูปภาพเนื่องจากใช้ "จุด" เป็นหน่วยฐาน ไม่ใช่พิกเซลจริง ต้องคำนวณการแปลงจากพิกเซลเป็นจุดซึ่งอาจมีข้อผิดพลาดด้านความแม่นยำเล็กน้อย
รูปแบบรูปภาพที่รองรับคือ PNG เท่านั้น ยังไม่ทราบว่า Excel รองรับ JPG สำหรับการส่งออกกราฟจริงหรือไม่ แต่ PNG ดูเหมือนจะเป็นตัวเลือกที่สมบูรณ์แบบเนื่องจากเป็นรูปแบบการบีบอัดแบบไม่สูญเสียข้อมูล
คาดว่าแถวแรกของแต่ละคอลัมน์จะมีชื่อของคอลัมน์ที่จะใช้เป็นชื่อของซีรี่ส์ที่พล็อตไว้ภายในกราฟ
คำสั่งในการเปิดสคริปต์มีดังนี้ สคริปต์จะต้องถูกเรียกโดยมีอาร์กิวเมนต์บรรทัดคำสั่งอย่างน้อย 6 อาร์กิวเมนต์
ชื่อ | คำอธิบาย |
---|---|
InputFile | เส้นทางของไฟล์ CSV อินพุต |
ไฟล์เอาท์พุต | เส้นทางของภาพ PNG เอาท์พุต |
ความกว้าง | ความกว้างของภาพที่ส่งออกเป็นพิกเซล |
ความสูง | ความสูงของภาพที่ส่งออกเป็นพิกเซล |
ซีรี่ส์ #1 คอลัมน์ X | ดัชนีคอลัมน์ X ของชุดแรก |
ซีรีส์ #1 คอลัมน์ Y | ดัชนีคอลัมน์ Y ของชุดแรก |
ซีรี่ส์ #2 คอลัมน์ X | ดัชนีคอลัมน์ X ของชุดที่สอง |
ซีรีส์ #2 คอลัมน์ Y | ดัชนีคอลัมน์ Y ของชุดที่สอง |
ซีรีส์ #n คอลัมน์ X | - |
ซีรีส์ #n คอลัมน์ Y | - |
โปรดทราบว่าดัชนีคอลัมน์เป็นแบบฐาน 1 และไม่ใช่ฐาน 0 ซึ่งหมายความว่าคอลัมน์ A คือคอลัมน์ 1 ไม่ใช่คอลัมน์ 0
สคริปต์เขียนด้วย VBScript ใช้สิ่งต่อไปนี้เพื่อรันสคริปต์จากไฟล์แบตช์ (*.bat) :
@echo off
cscript //nologo "%~dp0 csvPlot .vbs" pathtodemo.csv pathtodemo.png 800 600 1 2
pause
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:>cd /d C:Temp csvPlot demo
C:Temp csvPlot demo>cscript //Nologo csvPlot .vbs %cd%CarEngineModel.csv %cd%CarEngineModel.png 853 479 1 3 1 4 1 2 Loading input file C:Temp csvPlot demoCarEngineModel.csv...
File load successful.
File has 4 columns.
Plotting series of columns 1 and 3...
Plotting series of columns 1 and 4...
Plotting series of columns 1 and 2...
File C:Temp csvPlot demoCarEngineModel.png saved successfully.
C:Temp csvPlot demo>
ตัวอย่างต่อไปนี้แสดงมูลค่าปิดของราคาหุ้น Apple ในปี 2015 ข้อมูลนี้มาจาก Nasdaq ที่นี่
สามารถดาวน์โหลดข้อมูล CSV ได้ที่นี่: Apple Share Prices over time (2015).csv
ต่อไปนี้เป็นการแสดงโมเดลเครื่องยนต์ของรถยนต์สมมุติซึ่งมีความเร็วเพิ่มขึ้นและลดลงเมื่อเวลาผ่านไปตามการป้อนกลับของคันเร่ง
สามารถดาวน์โหลดข้อมูล CSV ได้ที่นี่: Car Engine Model.csv
ต่อไปนี้แสดงกราฟของฟังก์ชัน sin(), cos() และ log() ใน Excel
สามารถดาวน์โหลดข้อมูล CSV ได้ที่นี่: sin(x), cos(x) & log(x) function data.csv