Csvgraph는 잠재적으로 매우 큰(GB) csv 파일의 그래프를 빠르게 볼 수 있도록 설계되었습니다(비교를 위해 대부분의 스프레드시트는 1,048,576행으로 제한됩니다). Csvgraph에는 기본 제한이 없지만 궁극적으로는 사용 가능한 RAM에 따라 제한됩니다(32비트 버전은 사용 가능한 경우 최대 4GB RAM을 사용하는 반면, 64비트 버전은 사용 가능한 모든 RAM 및 가상 메모리를 사용합니다). 메모리). 매우 큰 파일의 경우에도 읽기 속도가 빠르고 일반적으로 확대/축소가 즉각적입니다.
이러한 csv 파일은 첫 번째 줄에 열 헤더가 있는 것으로 가정하므로 일반적인 csv 파일이 시작됩니다.
"시간(초)","Col-2","Col-3","Col-4","Col-5"
99950,20,0,20,20
99950.1,10,1,11,12
값은 부동 소수점 숫자로 읽혀지므로 +/-3.4e+38 사이의 숫자로 제한되며 0이 아닌 가장 작은 숫자는 약 1.4e-45이며 유효 숫자는 약 7자리입니다.
csv 파일의 데이터에 대한 간단한 플롯뿐만 아니라 데이터는 다양한 방법(중앙값 필터, 다항식 맞춤 및 FFT 포함)으로 필터링할 수 있을 뿐만 아니라 csv 데이터에서 계산할 수도 있습니다(예: 2의 데이터 간의 절대 차이). csv 파일의 열은 쉽게 표시될 수 있습니다(예: "abs($3-$4)"는 열 3과 4 사이의 절대 차이를 표시합니다).
csvgraph.pdf 파일에는 전체 매뉴얼과 사용 예제가 포함되어 있습니다.
1v0 - 첫 번째 github 릴리스
1v1 - 2021년 6월 1일 - FFT의 DC 구성요소 관련 잠재적 문제가 해결되었습니다. 메뉴/도움말/설명서가 추가되었습니다. 매뉴얼을 업데이트했습니다.
1v2 – 2021년 1월 24일 – 버그 수정 - csv 파일의 "inf"가 매우 큰 숫자(무한대)로 읽혀서 csvgraph가 숫자의 크기를 조정하고 그래프를 그리려고 할 때 문제가 발생했습니다. 지수, 거듭제곱, 쌍곡선 및 sqrt를 포함하여 "필터링"에 대한 더 많은 옵션이 추가되었습니다.
1v3 – 2021년 3월 2일 - 더 많은 곡선 피팅 옵션이 추가되었습니다. y=mx, y=mx+c(GMR 포함), 최소 절대 오차 및 최소 상대 오차, y=a x+b sqrt(x)+c.
2v0 – 2021년 2월 17일 – RAM 사용량을 줄이고 속도를 향상시키기 위한 주요 내부 변경 사항입니다. 기능에는 변화가 없습니다.
2v1 – 2021년 3월 21일 – 더 많은 커브 피팅 옵션이 추가되었습니다. 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 - 2021년 5월 4일 - $T1 ~ Tn은 표현식에서 그래프의 기존 추적 값을 사용할 수 있습니다. 트레이스는 1부터 번호가 매겨집니다. 잘못된 트레이스 번호(너무 크면)는 0을 반환합니다. 이제 사용자는 선형 필터의 순서를 설정할 수 있습니다. 이는 n차 버터워스 필터(10*차 dB/10년)로 구현됩니다. Order=0은 필터링을 제공하지 않습니다. Order =1은 이전과 동일한 필터링을 제공합니다. 적분 및 미분에 대한 "필터"가 추가되었습니다. 이제 모든 필터는 진행 상황을 %로 보고합니다(이전의 최소 절대 오류 및 최소 상대 오류는 진행 상황을 보고하지 않았으며 매우 느릴 수 있음). csv 헤더가 파일의 첫 번째 행에 없는 경우 csv 헤더 앞에 N 줄을 건너뛰는 옵션 이름이 설명적이지 않거나 누락된 경우 열을 더 쉽게 선택할 수 있도록 X 열 및 Y 열 목록 상자에 열 번호를 추가했습니다. ).
2v3 - 23-1-2022에 y=m x log(x)+c 곡선 피팅이 추가되었습니다. 정렬 및 중앙값 기능이 향상되어 속도가 빨라졌습니다. 정렬은 사용 가능한 모든 프로세서를 사용하여 실행 속도를 향상시킵니다.
2v4 - 2022년 3월 2일 버그 수정, x축 값 세트가 있는 표현식에 $Tn 변수 사용
숫자가 증가하는 순서가 아니어서 정렬이 필요했습니다. 2v2 및 2v3에서 제대로 작동하지 않았습니다. 죄송합니다.
2v5 - 2022년 16월 2일 csv 파일의 잘못된 줄 보고가 개선되었습니다. 시간을 읽을 때 0시간부터 시작하는 것은 선택 사항입니다.
2v6 – 2022년 2월 27일 – Median1 필터가 개선되었습니다. 이제 10,000개 미만의 데이터 포인트에 대해 정확하고 더 많은 수의 데이터 포인트로 정확한 추적이 가능해졌습니다. 더 많은 텍스트를 볼 수 있도록 추적 범례의 위치를 왼쪽으로 이동했습니다.
2v7 – 2022년 3월 22일 - 선형 필터에 대해 -3dB 주파수를 인쇄합니다. csv 파일의 모든 오류 유형에 대한 1가지 예를 사용자에게 표시합니다. csv 파일의 일부 줄에 날짜가 있는 경우 x 열이 시간으로 설정되면 날짜가 없는 줄에 잠재적 오류로 플래그를 지정합니다. 실행 시간이 길어지면 샘플링으로 되돌아가는 새로운(정확한) 중앙값(재귀 중앙값 필터) 알고리즘. 중앙값 및 중앙값 1은 재귀 중앙값 필터 및 표준 중앙값 필터로 이름이 변경되었습니다.
2v8 - 2022년 5월 23일 – x 값 csvsave에 % 완료가 추가되고 (상당히) 파일 쓰기 속도가 빨라짐에 따라 날짜 및 시간을 읽는 기능이 추가되었습니다. csvsave는 필요한 경우 보간하므로 x 값이 모든 추적에서 동일할 필요는 없습니다.
2v9 – 2022년 7월 6일 – 버그 수정 – x-오프셋이 0이 아니고 여러 트레이스가 추가된 경우 잘못된 x-오프셋이 이후에 추가된 두 번째 트레이스에 적용되었습니다. 날짜 및 시간 읽기에 대한 내부 해상도가 더 높으므로 "0부터 시작 시간"을 선택하면 결과가 약간 더 정확할 수 있습니다.
3v0 – 15/8/22 - 출시되지 않음 – 첫 번째 64비트 버전
3v1 – 17/8/22 - 출시되지 않았습니다. "공통 파일"(다른 프로그램에서 사용될 수 있음)로 리팩터링된 소스 코드는 분리되었습니다. 일부 파일은 C++에서 순수 C인 C로 이동했으며 C++ 컴파일러는 많은 경고를 생성했습니다.
3v2 – 2022년 9월 14일 – 첫 번째 64비트 릴리스. 64비트 버전은 사용 가능한 모든 메모리를 사용하는 반면, 32비트 버전은 4GB RAM으로 제한되지만 기능은 동일합니다. 64비트 버전은 2^32줄이 넘는 파일을 읽을 수 있지만, 32비트 버전은 많은 줄을 읽기 전에 RAM이 부족해집니다.
사소한 변경 사항: 이전에 Scales 메뉴를 여러 번 호출하면 크기 조정이 아주 약간 변경되었습니다. 즉, 수정되었습니다. 메인 타이틀과 X/Y축 타이틀에 허용되는 글꼴 크기 범위가 확장되었습니다. 이제 FFT는 더 빠른 결과를 제공하기 위해 여러 프로세서 코어가 있는 경우 이를 사용합니다.
3v3 - 2022년 9월 26일 - 더 큰 파일을 로드할 수 있도록 64비트 버전으로 변경되었습니다(RAM은 물론 가상 메모리 사용).
3v4 - 1-10-2022 - 64비트 버전에서 여러 모니터를 사용할 때 발생하는 dpi 처리 문제가 해결되었습니다.
3v5 – 2022년 6월 11일 – 선을 선택하고 마우스 오른쪽 버튼을 클릭하면 이 선의 기울기(dy/dx)와 선의 양쪽 끝 좌표가 제공됩니다. 명령줄에서 파일 이름을 지정할 수 있습니다(이전 버전에서는 64비트 버전에서는 작동하지 않았습니다). 이제 y축에 함수가 포함된 표현식이 허용됩니다(예: max($2,0) ).
3v6 2023년 3월 6일 – 이제 긴 열 헤더로 인해 스크롤 막대가 X 및 Y 목록 상자에 자동으로 추가되어 완전히 볼 수 있습니다. 파일 메뉴에 추가된 CSV로 화면의 x 범위를 저장합니다. 그래프의 추적 범례에 파일 이름의 기본 이름을 추가하는 옵션(체크박스)이 추가되었습니다. 이는 여러 파일에서 동일한 열을 읽는 경우 유용합니다. 사용자가 지정하지 않는 한 Y축 제목이 자동으로 추가됩니다(추가된 첫 번째 트레이스의 열 헤더 기준). X를 Value/60(초->분), Val/3600(초->시간), val/86400(초->일)로 로드하는 옵션이 추가되었습니다. 사용자 정의 날짜/시간 형식의 X 값에 대한 오류 처리가 개선되었으며 이제 후행 공백이 허용됩니다.
3v7 2023년 10월 6일 – '범례 표시' 체크박스가 추가되었습니다. Builder C++ 11.3 컴파일러를 사용하도록 변경되었습니다. 이제 제목이 그래프 위 중앙에 표시됩니다. csvgraph의 크기, 글꼴 등이 약간 변경되었습니다.
3v8 2023년 4월 7일 csvsave에서 두 번째 추적의 포인트가 첫 번째 추적보다 적으면 오류가 발생하여 수정되었습니다.
3v9 2024년 2월 26일
이제 Excel에서 이미 열려 있는 파일을 열 수 있습니다. 파일을 열지 못한 경우 오류 메시지가 더 잘 표시됩니다. 이전 명령이 계속 실행되는 동안 사용자가 "명령" 버튼을 누르는 현상이 더 잘 포착됩니다. Derivative는 이제 사용자가 지정한 순서로 17포인트 Savitzky Golay 알고리즘을 사용합니다(1->10이 실제로 사용되며 사용자가 1->무한대로 설정할 수 있음). 필터링 옵션으로 Savitzky Golay 스무딩이 추가되었습니다(25포인트, 사용자 지정 순서, 1->10이 실제로 사용되며 사용자가 1->무한대로 설정할 수 있음). 사용자가 지정한 순서로 25포인트 Savitzky Golay 알고리즘을 사용하는 필터 목록에 2차 미분(d2y/d2x)을 추가했습니다(1->10이 실제로 사용되며 사용자가 1->무한대로 설정할 수 있음). 표현식에서 참조된 열에 숫자가 누락된 경우 이는 nan으로 설정됩니다. 표현식에 상수 "nan"을 추가했습니다. 표현식이 nan으로 평가되면 행을 건너뛰므로 이는 csvgraph가 표시할 점을 선택하는 강력한 방법이 될 수 있습니다. 표현식에 "변수" x 및 line을 추가했습니다. x는 현재 x 값이고 line은 현재 줄 번호입니다. nan==nan 및 nan!=nan이 표현식에서 예상대로 작동하도록 표현식 핸들러를 업데이트했습니다.
3v10 2024년 6월 4일 스무딩 스플라인 필터가 추가되었습니다.
4v0 2024년 3월 7일 Csvgraph는 이제 유니코드 텍스트(uft-8)에서 작동하므로 모든 문자를 사용할 수 있습니다. 이는 uft-8로 인코딩된 csv 파일이 올바르게 읽히고 해당 BOM(바이트 순서 표시)이 있는 경우 올바르게 처리됨을 의미합니다. 열 제목, 기본 제목 및 축 제목에는 모두 utf8 문자가 포함될 수 있습니다. Utf-8은 7비트 ASCII와 역호환되므로 "기존" csv 파일은 이전과 동일하게 처리되어야 합니다. csv 파일을 저장할 때 파일이 BOM으로 생성되도록 지정할 수 있는 옵션이 있습니다. 파일 이름과 파일 경로에는 유니코드 문자(utf-8)가 포함될 수도 있습니다. 최신 버전의 Excel로 CSV 파일을 저장하면 BOM이 포함된 utf-8 형식 csv 파일이 생성되며, Excel에서 csv 파일을 열려고 하면 이를 인식하려면 BOM이 필요합니다. 기타 변경 사항: • 화면 이미지는 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)이나 Linux의 Wine에서 실행되어야 하지만 테스트되지 않았습니다.
3v7 릴리스부터 소스 코드는 Embarcadero® C++Builder 11.3으로 컴파일되었습니다. 적절한 프로젝트 파일이 아카이브에 포함되어 있습니다. 오류나 경고 없이 컴파일되어야 합니다. 최신 버전의 C++Builder로 이동하는 것은 쉬울 것입니다(적어도 32/64비트 Windows 대상의 경우). 필요한.
C++Builder를 사용하지 않는 경우 소스 코드의 많은 부분이 흥미로울 수 있습니다. 예를 들어 atof.c는 ya-sprintf의 일부입니다. https://github.com/pj-miller/ya-sprintf를 참조하세요.
expr-code.c에는 문자열에 저장된 표현식에 대한 빠른 일반 표현식 평가기를 포함하여 일반적으로 유용한 많은 루틴이 포함되어 있습니다.
UScientificGraph.cpp에는 효율적인 중앙값 필터 구현과 다항식 맞춤 구현이 포함되어 있으며 둘 다 매우 많은 수의 데이터 포인트에서 잘 작동하며 이에 대한 구현은 참신한 것으로 여겨집니다. 또한 "무한" 확대/축소를 허용하는 빠른 라인 클리핑 알고리즘도 포함되어 있습니다.