Csvgraph は、非常に大きな (GB) になる可能性がある CSV ファイルのグラフをすばやく表示できるように設計されています (比較すると、ほとんどのスプレッドシートは 1,048,576 行に制限されています)。 Csvgraph には組み込みの制限はありませんが、最終的には利用可能な RAM によって制限されます (32 ビット バージョンでは、利用可能な場合は最大 4 GB の 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 の範囲の数値に制限され、ゼロ以外の最小数値は約 7 桁の有効数字で約 1.4e-45 になります。
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 が数値をスケールしてグラフを描画しようとすると問題が発生しました。指数関数、べき乗、双曲線、平方根などの「フィルタリング」オプションがさらに追加されました。
1v3 – 2021 年 3 月 2 日 - より多くのカーブ フィッティング オプションが追加されました。GMR を使用した y=mx、y=mx+c、最小絶対誤差と最小相対誤差、および 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+ ex^2)、ユーザー定義次数の sqrt(x) 上の多項式およびユーザー定義次数に対する有理関数 (多項式/多項式)。
2v2 - 2021 年 5 月 4 日 - $T1 から Tn までの式で、グラフ上の既存のトレースの値を使用できるようになりました。トレースには 1 から番号が付けられます。無効なトレース番号 (大きすぎる) は 0 を返します。ユーザーは線形フィルターの次数を設定できるようになりました。これは、n 次バターワース フィルター (10* 次 dB/decade) として実装されます。 Order=0 ではフィルタリングは行われません。 Order =1 では、前と同じフィルタリングが行われます。積分および微分用の「フィルター」が追加されました。すべてのフィルターは進行状況を % として報告するようになりました (以前は、最小絶対誤差と最小相対誤差は進行状況を報告しなかったため、非常に遅くなる可能性がありました)。 CSV ヘッダーがファイルの 1 行目にない場合に、CSV ヘッダーの前の N 行をスキップするオプションが追加されました X 列と Y 列のリスト ボックスに列番号が追加され、名前があまり説明的でない (または欠落している) 場合に列を選択しやすくなりました)。
2v3 - 2022 年 1 月 23 日、y=m x log(x)+c 曲線フィッティングを追加しました。ソート関数とメディアン関数が高速化するために改善されました。ソートは、実行速度を向上させるために利用可能なすべてのプロセッサを使用します。
2v4 - 2022 年 3 月 2 日のバグ修正。以下の x 軸値のセットを持つ式で変数 $Tn を使用します。
数値の昇順ではない (したがって並べ替える必要がある) と、2v2 と 2v3 では正しく動作しませんでした – 申し訳ありません。
2v5 - 2022 年 2 月 16 日 CSV ファイル内の無効な行のレポートが改善されました。時間を読み取るときに、ゼロ時間から開始することはオプションになりました。
2v6 – 2022 年 2 月 27 日 – Median1 フィルターが改善され、10,000 データ ポイント以下のフィルターが正確になり、より多くのデータ ポイントを含む正確なトレースが (はるかに) 正確になりました。トレース凡例の位置が左に移動され、より多くのテキストが表示されるようになりました。
2v7 – 2022/3/22 - 線形フィルターの -3dB 周波数を出力します。 CSV ファイル内のあらゆるタイプのエラーの例をユーザー 1 に表示します。 CSV ファイルの一部の行に日付が存在する場合、x 列が時刻に設定されている場合、日付のない行に潜在的なエラーとしてフラグを立てます。新しい (正確な) メディアン (再帰的メディアン フィルター) アルゴリズム。実行時間が長くなった場合はサンプリングに戻ります。 Median と Median 1 は、再帰的メディアン フィルターと標準メディアン フィルターに名前変更されました。
2v8 - 2022 年 5 月 23 日 – x 値として日付と時刻を読み取る機能を追加しました。 csvsave は完了率を追加し、ファイルへの書き込みを (大幅に) 高速化しました。 csvsave は必要に応じて補間するため、x 値がすべてのトレースで同一である必要はありません。
2v9 – 2022 年 7 月 6 日 – バグ修正 – x オフセットが 0 に等しくなく、複数のトレースが追加された場合、2 番目以降に追加されたトレースに誤った x オフセットが適用されていました。日付と時刻の読み取りの内部解像度が高くなるため、「ゼロから開始時刻」にチェックを入れると、結果が若干正確になる可能性があります。
3v0 – 15/8/22 - 未リリース – 最初の 64 ビット バージョン
3v1 – 17/8/22 - リリースされませんでした。 「共通ファイル」(他のプログラムで使用される可能性のあるファイル)を分離してリファクタリングされたソース コード。一部のファイルを C++ から C に移動すると、純粋な C になり、C++ コンパイラによって大量の警告が生成されました。
3v2 – 2022 年 9 月 14 日 – 最初の 64 ビット リリース。 64 ビット バージョンは利用可能なすべてのメモリを使用しますが、32 ビット バージョンは 4 GB の RAM に制限されていますが、その機能は同じです。 64 ビット バージョンでは、2^32 行を超えるファイルを読み取ることができますが、32 ビット バージョンでは、その数の行を読み取る前に RAM が不足します。
マイナーな変更点: 以前に [スケール] メニューを複数回呼び出すと、スケーリングがごくわずかに変化していましたが、これは修正されました。メインタイトルとX/Y軸タイトルのフォントサイズの許容範囲が拡大されました。 FFT は、より高速な結果を提供するために、複数のプロセッサ コアが存在する場合にはそれを利用するようになりました。
3v3 - 2022 年 9 月 26 日 - さらに大きなファイルをロードできるように 64 ビット バージョンに変更 (仮想メモリと RAM を使用)
3v4 - 2022 年 1 月 10 日 - 64 ビット バージョンで複数のモニターを使用する場合の dpi 処理の問題を修正しました。
3v5 – 2022 年 6 月 11 日 – 線を選択してマウスを右クリックすると、この線の傾き (dy/dx) と線の両端の座標が表示されます。ファイル名はコマンド ラインで指定できます (以前のバージョンでは、これは 64 ビット バージョンでは機能しませんでした)。関数を含む式が y 軸に使用できるようになりました (例: max($2,0) )。
3v6 2023 年 3 月 6 日 – 長い列ヘッダーにより、X および Y リストボックスにスクロール バーが自動的に追加され、完全に表示されるようになりました。画面上の x 範囲を CSV として保存し、[ファイル] メニューに追加しました。グラフ上のトレースの凡例にファイル名のベース名を追加するオプション (チェックボックス) が追加されました。これは、同じ列が複数のファイルから読み取られる場合に便利です。ユーザーが指定しない限り、Y 軸のタイトルは自動的に追加されます (追加された最初のトレースの列ヘッダーに基づいて)。 X を Value/60 (秒 -> 分)、Val/3600 (秒 -> 時間)、VAL/86400 (秒 -> 日) としてロードするオプションを追加しました。ユーザー定義の日付/時刻形式の X 値のエラー処理が改善され、末尾の空白が許可されるようになりました。
3v7 2023 年 10 月 6 日 – 「凡例を表示」チェックボックスが追加されました。 Builder C++ 11.3 コンパイラを使用するように変更されました。タイトルがグラフの上の中央に配置されるようになりました。 csvgraph のサイズ、フォントなどを若干変更しました。
3v8 2023 年 4 月 7 日 csvsave で 2 番目のトレースのポイントが 1 番目のトレースよりも少ない場合にエラーが発生しました - 修正されました。
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 が Unicode テキスト (uft-8) で動作するようになり、あらゆる文字を使用できるようになりました。つまり、uft-8 でエンコードされた csv ファイルは正しく読み取られ、その BOM (バイト オーダー マーク) が存在する場合は正しく処理されます。列見出し、メイン タイトル、軸タイトルにはすべて utf8 文字を含めることができます。 Utf-8 は 7 ビット ASCII と下位互換性があるため、「従来の」csv ファイルは以前とまったく同じように処理する必要があります。 CSV ファイルを保存するときに、ファイルが BOM とともに作成されるように指定するオプションがあります。ファイル名とファイルへのパスには Unicode 文字 (utf-8) が含まれる場合もあります。最近のバージョンの Excel で CSV ファイルを保存すると、BOM を含む utf-8 形式の CSV ファイルが作成されます。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 ターゲットの場合) に移行するのは簡単ですが、同様に、次の場合は以前のバージョンに戻す (Builder C++ V5 に戻す) こともそれほど難しくありません。必要。
C++Builder を使用しない場合は、ソース コードの多くの部分が興味深い可能性があります。たとえば、atof.c は ya-sprintf の一部です。https://github.com/pj-miller/ya-sprintf を参照してください。
expr-code.c には、文字列に格納された式に対する高速な一般式評価器など、一般的に役立つルーチンが多数含まれています。
UScientificGraph.cpp には、効率的なメディアン フィルターの実装と多項式フィットの実装が含まれており、どちらも非常に多くのデータ ポイントで適切に機能し、これらの実装は新しいものであると考えられています。また、「無限」のズームイン/アウトを可能にする高速ラインクリッピングアルゴリズムも含まれています。