Microsoft Excel을 사용하여 CSV 파일에서 그래프를 그리는 명령줄 스크립트입니다.
이 프로젝트는 원래 Antoine이 작성했습니다. 이 저장소는 그가 만든 원본 프로젝트의 일부일 뿐입니다. 나는 그를 개인적으로 알지 못합니다. 나는 이 작업을 좋아했지만 아직 github에 없었기 때문에 (내가 아는 한) 여기에 저장소를 만들었습니다. 다음은 원작자의 이야기이다. 의견이나 제안이 있는 경우 작성자 사이트로 이동하여 문제를 보고하거나 개선을 요청하려면 여기에서 문제를 공개하세요.
저는 다양한 프로그래밍 언어를 사용하여 소프트웨어 프로토타이핑을 합니다. 시간이 지나면서 대부분 그리드 형식으로 표시되는 데이터를 생성해야 하는 경우가 많습니다. 그러나 이는 데이터를 그래프로 그리는 것과 비교하여 시간이 지남에 따라 데이터가 어떻게 변하는지 이해하는 가장 좋은 방법은 아닙니다.
내가 아는 대부분의 프로그래밍 언어는 데이터를 그래프로 표시하기 위한 기본 라이브러리를 제공하지 않습니다. 쉬운 일이 아닙니다. 대부분의 프로그래밍 언어에는 프로세스 구현을 위해 외부 라이브러리가 필요한 경우가 많으며 각 라이브러리는 동일한 방식으로 작동하지 않습니다.
Excel은 쉼표로 구분된 값(CSV) 파일을 구문 분석하기 위한 기본 플랫폼이며 결과를 이미지에 표시하도록 스크립트를 작성할 수 있습니다.
이 스크립트의 목적은 원시 데이터를 CSV 파일에 저장한 다음 Excel의 강력한 기능을 사용하여 결과를 이미지에 플롯함으로써 데이터를 생성하는 모든 프로그래밍 언어가 데이터를 이미지에 플롯할 수 있도록 하는 것입니다.
다음 섹션에는 csvPlot 스크립트의 기능이 나열되어 있습니다.
스크립트에는 여기에 설명된 몇 가지 제한 사항이 있습니다.
출력 이미지의 해상도는 명령줄에서 요청한 것과 +- 1 픽셀 다를 수 있습니다. 이는 Excel에서 실제 픽셀이 아닌 "점"을 기본 단위로 사용하기 때문에 이미지 크기를 처리하는 방법에 대한 제한 사항입니다. 픽셀에서 포인트로의 변환은 작은 정확도 오류를 포함할 수 있는 계산되어야 합니다.
지원되는 유일한 이미지 형식은 PNG입니다. Excel이 실제로 그래프 내보내기에 JPG를 지원하는지 여부는 아직 알려지지 않았지만 PNG는 무손실 압축 형식이므로 완벽한 후보인 것 같습니다.
각 열의 첫 번째 행에는 그래프 내에서 플롯된 계열의 이름으로 사용될 열의 제목이 포함될 것으로 예상됩니다.
스크립트를 실행하는 명령은 다음과 같습니다. 스크립트는 최소 6개의 명령줄 인수를 사용하여 호출해야 합니다.
이름 | 설명 |
---|---|
입력파일 | 입력 CSV 파일의 경로 |
출력파일 | 출력 PNG 이미지의 경로 |
너비 | 출력 이미지의 너비(픽셀) |
키 | 출력 이미지의 높이(픽셀) |
시리즈 #1, X 열 | 첫 번째 시리즈의 X 열 인덱스 |
시리즈 #1, Y열 | 첫 번째 계열의 Y 열 인덱스 |
시리즈 #2, X 열 | 두 번째 시리즈의 X 열 인덱스 |
시리즈 #2, Y열 | 두 번째 계열의 Y 열 인덱스 |
시리즈 #n, X 열 | ... |
시리즈 #n, Y 열 | ... |
열 인덱스는 0 기반이 아니라 1 기반입니다. 즉, A열은 0열이 아니라 1열입니다.
스크립트는 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>
다음 예는 2015년 Apple 주가 종가를 보여줍니다. 데이터는 Nasdaq에서 제공한 것입니다.
CSV 데이터는 여기에서 다운로드할 수 있습니다: 시간 경과에 따른 Apple 주가(2015).csv
다음은 가속 페달의 피드백을 기반으로 시간이 지남에 따라 속도가 증가하거나 감소하는 가상의 자동차 엔진 모델을 보여줍니다.
CSV 데이터는 여기에서 다운로드할 수 있습니다: Car Engine Model.csv
다음은 Excel의 sin(), cos(), log() 함수를 그래프로 나타낸 것입니다.
CSV 데이터는 여기에서 다운로드할 수 있습니다: sin(x), cos(x) 및 log(x) 함수 data.csv