Um script de linha de comando que usa o Microsoft Excel para traçar um gráfico a partir de um arquivo CSV.
Este projeto foi originalmente escrito por Antoine. Este repositório é apenas um fork do projeto original feito por ele. Eu não o conheço pessoalmente. Gostei desse trabalho, ainda não estava no github (que eu saiba), então criei um repo aqui. A seguir está uma narrativa do autor original. Em caso de comentários ou sugestões, acesse o site do Autor e para relatar qualquer problema ou solicitar melhorias, abra questões aqui.
Faço prototipagem de software usando uma ampla variedade de linguagens de programação. Muitas vezes tenho que gerar dados que mudam ao longo do tempo e são exibidos principalmente em formato de grade. No entanto, essa não é a melhor maneira de entender como os dados mudam ao longo do tempo em comparação com a plotagem dos dados em um gráfico.
A maioria das linguagens de programação que conheço não oferece uma biblioteca nativa para plotar dados em um gráfico. Não é uma tarefa fácil. A maioria das linguagens de programação geralmente requer bibliotecas externas para implementar o processo e cada biblioteca não funciona da mesma maneira.
Excel é uma plataforma nativa para análise de arquivos de valores separados por vírgula (CSV) e pode ser programado para representar o resultado em uma imagem.
O objetivo deste script é permitir que qualquer linguagem de programação que gere dados plote os dados em uma imagem, salvando os dados brutos em um arquivo CSV e, em seguida, usando o poder do Excel para plotar o resultado em uma imagem.
A seção a seguir lista os recursos do script csvPlot :
O script tem algumas limitações que são explicadas aqui.
A resolução da imagem de saída pode ser +- 1 pixel diferente da solicitada na linha de comando. Esta é uma limitação de como o Excel processa as dimensões da imagem, uma vez que usa “pontos” como unidade base e não pixels reais. Deve ser calculada uma conversão de pixels em pontos que pode conter pequenos erros de precisão.
O único formato de imagem suportado é PNG. Ainda não se sabe se o Excel realmente suporta JPG para exportação de gráficos, mas PNG parece ser o candidato perfeito, pois é um formato compactado sem perdas.
Espera-se que a primeira linha de cada coluna contenha o título da coluna que será utilizado como nome da série plotada no gráfico.
O comando para iniciar o script é o seguinte. O script deve ser chamado com no mínimo 6 argumentos de linha de comando.
Nome | Descrição |
---|---|
Arquivo de entrada | Caminho do arquivo CSV de entrada |
Arquivo de saída | Caminho da imagem PNG de saída |
Largura | Largura da imagem de saída em pixels |
Altura | Altura da imagem de saída em pixels |
Série #1, coluna X | Índice da coluna X da primeira série |
Série #1, coluna Y | Índice da coluna Y da primeira série |
Série #2, coluna X | Índice da coluna X da segunda série |
Série #2, coluna Y | Índice da coluna Y da segunda série |
Série #n, coluna X | ... |
Série #n, coluna Y | ... |
Observe que o índice da coluna é baseado em 1 e não em 0. Isso significa que a coluna A é a coluna 1 e não a coluna 0.
O script é escrito em VBScript. Use o seguinte para executar o script a partir de um arquivo em lote (*.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>
O exemplo a seguir mostra o valor de fechamento dos preços das ações da Apple no ano de 2015. Os dados são fornecidos pela Nasdaq aqui.
Os dados CSV podem ser baixados aqui: Preços das ações da Apple ao longo do tempo (2015).csv
A seguir, mostramos um modelo hipotético de motor de carro cuja velocidade aumenta ou diminui ao longo do tempo com base no feedback do pedal do acelerador.
Os dados CSV podem ser baixados aqui: Car Engine Model.csv
A seguir mostra um gráfico das funções sin(), cos() e log() no Excel.
Os dados CSV podem ser baixados aqui: sin(x), cos(x) & log(x) function data.csv