Csvgraph dirancang untuk memungkinkan tampilan cepat grafik file csv yang berpotensi sangat besar (GB) (sebagai perbandingan, sebagian besar spreadsheet dibatasi hingga 1.048.576 baris). Csvgraph tidak memiliki batasan bawaan, namun pada akhirnya dibatasi oleh RAM yang tersedia (versi 32-bit akan menggunakan hingga 4GB RAM jika tersedia, sedangkan versi 64-bit akan menggunakan semua RAM dan virtual yang tersedia ingatan). Bahkan dengan file yang sangat besar, pembacaannya cepat dan pembesaran biasanya dilakukan seketika.
File csv ini diasumsikan memiliki header kolom pada baris pertamanya sehingga file csv biasa akan dimulai:
"Waktu (detik)", "Kol-2", "Kol-3", "Kol-4", "Kol-5"
99950,20,0,20,20
99950.1,10,1,11,12
Nilai dibaca sebagai angka floating-point sehingga dibatasi pada angka antara +/-3.4e+38 dan angka terkecil bukan nol adalah sekitar 1.4e-45, dengan sekitar 7 digit signifikan.
Selain plot sederhana data dalam file csv, data dapat disaring dengan beberapa cara berbeda (termasuk filter median, kecocokan polinomial, dan FFT) serta dihitung dari data csv (misalnya perbedaan absolut antara data dalam 2 kolom file csv dapat dengan mudah diplot (misalnya "abs($3-$4)" akan memplot perbedaan absolut antara kolom 3 dan 4).
File csvgraph.pdf berisi manual lengkap dan sejumlah contoh penggunaannya.
1v0 - rilis github pertama
1v1 - 1/6/2021- memperbaiki potensi masalah dengan komponen DC FFT. Menambahkan Menu/Bantuan/Manual. Panduan yang diperbarui.
1v2 – 24/1/2021 – perbaikan bug - “inf” di file csv akan dibaca sebagai angka yang sangat besar (tak terhingga) yang kemudian menyebabkan masalah saat csvgraph mencoba menskalakan angka dan menggambar grafik. Menambahkan lebih banyak opsi untuk "pemfilteran" termasuk eksponensial, pangkat, hiperbolik, dan kuadrat.
1v3 – 2/3/2021 - opsi penyesuaian kurva lainnya ditambahkan, y=mx, y=mx+c dengan GMR , kesalahan absolut minimum dan kesalahan relatif minimum, dan y=a x+b sqrt(x)+c.
2v0 – 17/2/2021 – Perubahan internal besar-besaran untuk mengurangi penggunaan RAM dan meningkatkan kecepatan. Tidak ada perubahan fungsi.
2v1 – 21/3/2021 – lebih banyak opsi penyesuaian kurva ditambahkan; y=a+b kuadrat(x)+c x+d*x^1,5, y=(a+bx)/(1+cx), y=(a+bx+cx^2)/(1+dx+ mis^2), polinomial pada akar kuadrat(x) dari urutan yang ditentukan pengguna dan fungsi rasional (polinomial/polinomial) ke urutan yang ditentukan pengguna.
2v2 - 4/5/2021 - $T1 hingga Tn diizinkan dalam ekspresi untuk menggunakan nilai dari jejak yang ada pada grafik. Jejak diberi nomor dari 1. Nomor jejak tidak valid (terlalu besar) menghasilkan 0. Pengguna kini dapat mengatur urutan filter linier. Ini diimplementasikan sebagai filter Butterworth orde ke-n (10*order dB/dekade). Order=0 tidak memberikan pemfilteran. Order =1 memberikan pemfilteran yang sama seperti sebelumnya. "filter" untuk penambahan integral dan turunan. Semua filter sekarang melaporkan kemajuan dalam % (sebelumnya kesalahan min. abs dan kesalahan relatif min. tidak melaporkan kemajuan dan bisa sangat lambat). Opsi untuk melewati N baris sebelum header csv ditambahkan jika header csv tidak ada di baris pertama file. Menambahkan nomor kolom ke kotak daftar kolom X dan kolom Y untuk memudahkan memilih kolom ketika namanya tidak terlalu deskriptif (atau hilang ).
2v3 - 23-1-2022 menambahkan pemasangan kurva y=m x log(x)+c. Fungsi pengurutan dan median ditingkatkan agar lebih cepat - pengurutan akan menggunakan semua prosesor yang tersedia untuk meningkatkan kecepatan eksekusinya.
Perbaikan bug 2v4 - 2-3-2022, menggunakan variabel $Tn dalam ekspresi dengan sekumpulan nilai sumbu x yang
tidak dalam urutan yang bertambah secara numerik (sehingga perlu diurutkan) tidak berfungsi dengan benar dalam 2v2 dan 2v3 – maaf.
2v5 - 16-2-2022 Pelaporan baris tidak valid yang lebih baik di file csv. Saat membaca waktu, dibuat mulai dari waktu nol opsional.
2v6 – 27/2/2022 – Filter Median1 ditingkatkan, untuk <=10.000 titik data sekarang sudah tepat dan (jauh) lebih banyak untuk pelacakan akurat dengan jumlah titik data yang lebih banyak. Posisi legenda jejak dipindahkan ke kiri sehingga lebih banyak teks yang dapat dilihat.
2v7 – 22/3/2022 - mencetak frekuensi -3dB untuk filter linier. Tampilkan kepada pengguna 1 contoh setiap jenis kesalahan dalam file csv. Jika ada tanggal pada beberapa baris file csv, maka tandai baris tanpa tanggal sebagai potensi kesalahan ketika kolom x disetel ke waktu. Algoritme median (filter median rekursif) baru (tepat), yang kembali ke pengambilan sampel jika waktu eksekusi menjadi lama. Median dan Median 1 berganti nama menjadi filter median rekursif dan filter median standar.
2v8 - 23/5/2022 – menambahkan kemampuan untuk membaca tanggal dan waktu seiring nilai x csvsave menambahkan % selesai dan (secara signifikan) mempercepat penulisan ke file. csvsave melakukan interpolasi jika diperlukan sehingga nilai x tidak harus sama di semua jejak.
2v9 – 6/7/2022 – perbaikan bug – jika x-offset tidak sama dengan 0 dan beberapa jejak ditambahkan, x-offset yang salah diterapkan ke jejak ke-2 yang ditambahkan dan seterusnya. Resolusi internal yang lebih tinggi pada pembacaan tanggal & waktu, jadi jika “waktu mulai dari nol” dicentang, hasilnya mungkin sedikit lebih akurat.
3v0 – 15/8/22 - Tidak pernah dirilis – versi 64-bit pertama
3v1 – 17/8/22 - Tidak pernah dirilis. Kode sumber difaktorkan ulang dengan “file umum” (yang dapat digunakan dalam program lain) dipisahkan. Beberapa file dipindahkan dari C++ ke C yang merupakan C murni dan kompiler C++ menghasilkan banyak peringatan.
3v2 – 14/9/2022 – rilis 64-bit pertama. Versi 64-bit akan menggunakan semua memori yang tersedia, sedangkan versi 32-bit dibatasi hingga 4GB ram, selain itu fungsinya sama. Versi 64 bit dapat membaca file yang lebih dari 2^32 baris, versi 32 bit akan kehabisan RAM sebelum banyak baris tersebut dapat dibaca.
Perubahan kecil: Ketika menu Scales dipanggil beberapa kali sebelumnya, penskalaan akan sedikit berubah – tetap. Rentang ukuran font yang diperbolehkan untuk judul utama dan judul sumbu X/Y diperluas. FFT sekarang menggunakan beberapa inti prosesor jika ada untuk memberikan hasil yang lebih cepat.
3v3 - 26/9/2022 - perubahan pada versi 64 bit untuk memungkinkan memuat file yang lebih besar (menggunakan memori virtual dan juga RAM)
3v4 - 10-1-2022 - memperbaiki masalah penanganan dpi saat beberapa monitor digunakan pada versi 64 bit.
3v5 – 11/6/2022 – dengan klik kanan mouse ketika sebuah garis dipilih maka kemiringan garis tersebut (dy/dx) diberikan serta koordinat kedua ujung garis. Nama file dapat diberikan pada baris perintah (pada versi sebelumnya ini tidak berfungsi untuk versi 64-bit). Ekspresi yang berisi fungsi sekarang diperbolehkan untuk sumbu y (misalnya max($2,0) ).
3v6 3/6/2023 – Header kolom yang panjang kini menyebabkan bilah gulir secara otomatis ditambahkan ke kotak daftar X & Y sehingga dapat dilihat sepenuhnya. Simpan rentang x di layar saat CSV ditambahkan ke menu File. Opsi (kotak centang) ditambahkan untuk menambahkan nama dasar nama file ke legenda jejak pada grafik, yang berguna jika kolom yang sama dibaca dari beberapa file. Judul sumbu Y secara otomatis ditambahkan kecuali pengguna menentukannya (berdasarkan header kolom jejak pertama yang ditambahkan). Menambahkan opsi untuk memuat X sebagai Nilai/60 (detik->menit), Val/3600 (detik->jam), val/86400 (detik->hari). Penanganan kesalahan untuk nilai X dalam format tanggal/waktu yang ditentukan pengguna ditingkatkan, dan spasi tambahan kini diperbolehkan.
3v7 10/6/2023 – Kotak centang “Tampilkan legenda” ditambahkan. Diubah menggunakan kompiler Builder C++ 11.3. Judul sekarang berada di tengah di atas grafik. Perubahan kecil pada ukuran, font, dll di csvgraph.
3v8 4/7/2023 csvsave di mana jejak ke-2 memiliki poin lebih sedikit daripada jejak pertama menyebabkan kesalahan - diperbaiki.
3v9 26/2/2024
Sekarang dapat membuka file yang sudah dibuka oleh excel (dan pesan kesalahan lebih baik jika gagal membuka file). Menjebak pengguna dengan lebih baik dengan menekan tombol "perintah" saat perintah sebelumnya masih berjalan. Derivatif sekarang menggunakan algoritma Savitzky Golay 17 poin dengan urutan yang ditentukan pengguna (1->10 sebenarnya digunakan, dapat diatur 1->tak terhingga oleh pengguna). Pemulusan Savitzky Golay ditambahkan sebagai opsi pemfilteran (25 poin, dengan urutan yang ditentukan pengguna, 1->10 benar-benar digunakan, dapat diatur 1->tak terhingga oleh pengguna). Menambahkan turunan ke-2 (d2y/d2x) ke daftar filter yang menggunakan algoritma Savitzky Golay 25 poin dengan urutan yang ditentukan pengguna (1->10 sebenarnya digunakan, dapat diatur 1->tak terhingga oleh pengguna). Jika ada nomor yang hilang dalam kolom yang dirujuk dalam ekspresi, ini akan disetel ke nan. Menambahkan konstanta "nan" untuk ekspresi. Jika sebuah ekspresi bernilai nan, baris tersebut dilewati sehingga ini bisa menjadi cara yang ampuh untuk memilih titik untuk ditampilkan oleh csvgraph. Menambahkan "variabel" x dan baris ke ekspresi. x adalah nilai x saat ini, dan baris adalah nomor baris saat ini. Penangan ekspresi diperbarui sehingga nan==nan dan nan!=nan berfungsi seperti yang diharapkan dalam ekspresi.
3v10 6/4/2024 Filter spline penghalusan ditambahkan.
4v0 7/3/2024 Csvgraph sekarang berfungsi dengan teks Unicode (uft-8) sehingga karakter apa pun dapat digunakan. Itu berarti file csv yang dikodekan uft-8 akan dibaca dengan benar, dan BOM-nya (Byte Order Mark) jika ada akan diproses dengan benar. Judul kolom, judul utama, dan judul sumbu semuanya dapat menyertakan karakter utf8. Utf-8 kompatibel dengan ASCII 7-bit sehingga file csv “konvensional” harus diproses persis seperti sebelumnya. Saat menyimpan file csv, Anda memiliki opsi untuk menentukan bahwa file tersebut dibuat dengan BOM. Nama file dan jalur ke file mungkin juga berisi karakter Unicode (utf-8). Perhatikan bahwa menyimpan file CSV dengan versi terbaru Excel akan membuat file csv format utf-8 dengan BOM, dan BOM diperlukan agar Excel dapat mengenali file csv jika Anda mencoba dan membukanya. Perubahan lainnya: • Gambar layar dapat disimpan dalam format BMP, jpg, png, gif, tiff dan wdg. • ? operator dapat digunakan secara bebas dalam ekspresi misalnya ($1==0?0:1) sekarang diterima sebagai ekspresi yang valid (sebelumnya hanya berfungsi jika tanda kurung dihilangkan) • untuk regresi dalam polinomial akar persegi(x), titik dengan negatif x sekarang diabaikan. • Mengizinkan X dan juga x dalam ekspresi (berguna untuk memotong dan menempelkan persamaan [ misalnya dari pencocokan kurva] dapat menggunakan X)
Cvsgraph adalah program portabel yang tidak memerlukan instalasi.
Salin file csvgraph32.exe atau csvgraph64.exe ke lokasi mana pun di komputer Anda (atau jalankan dari stik USB atau sejenisnya). Tambahkan csvgraph.pdf ke direktori yang sama untuk memungkinkan akses ke manual dari dalam csvgraph (menu bantuan/manual).
Pintasan di desktop Anda memudahkan eksekusi csvgraph.
Lihat file LISENSI untuk detailnya, tetapi csvgraph gratis untuk penggunaan komersial dan non-komersial.
csvgraph berjalan di Windows (10 32 atau 64 bit). Ini harus berjalan pada versi sebelumnya (ke Vista) atau di bawah Wine di Linux tetapi ini belum teruji.
Dari rilis 3v7, kode sumber dikompilasi dengan Embarcadero® C++Builder 11.3 - file proyek yang sesuai disertakan dalam arsip. Itu harus dikompilasi tanpa kesalahan atau peringatan. Seharusnya mudah untuk berpindah ke versi C++Builder yang lebih baru (setidaknya untuk target Windows 32/64 bit), namun juga tidak akan terlalu sulit untuk kembali ke versi sebelumnya (kembali ke Builder C++ V5) jika diperlukan.
Banyak bagian kode sumber yang mungkin menarik jika Anda tidak menggunakan C++Builder - misalnya atof.c adalah bagian dari ya-sprintf lihat https://github.com/pj-miller/ya-sprintf
expr-code.c berisi banyak rutinitas yang umumnya berguna - termasuk evaluator ekspresi umum yang cepat untuk ekspresi yang disimpan dalam string.
UScientificGraph.cpp berisi implementasi filter median yang efisien dan implementasi polinomial yang cocok, keduanya bekerja dengan baik dengan jumlah titik data yang sangat besar dan implementasinya diyakini baru. Ini juga berisi algoritma kliping garis cepat yang memungkinkan zoom in/out "tak terbatas".