Fuji6003
@Fuji6003

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

[Windows Form App] C#でCSVを読み込んで chartコントロールでグラフにしたい。

C#でCSVを読み込みたい

半年前からいじり始めたC#超初心者です。

マイコンから取り出したデータ(CSV形式)のファイルをグラフ化したいと思っており、
最終的には、得たデータから、
https://tech-and-investment.com/chart1/
↑ こちらのサイトのようなグラフを作りたいと考えており、参考にさせていただいています。

今のところ、このリンクのようなグラフを作ることには成功したのですが、
(ほぼコピペ&プログラムの理解はできた程度)

目的としてCSV形式のデータをグラフ化したいということがあり、
そのCSVデータを読み込む方法がわかりません。

データは
日付時間(#yyyy-mm-dd HH:MM:SS) , 気温, 気圧
のデータであり、ヘッダーはついています。

スクリーンショット 2022-01-29 235606.jpg

小数点以下のデータがあるため、double型の配列にして読み込みたいと考えております。
(Listにしてもグラフにするときの読み込み方がわからないので...)

また、グラフは今後、別のデータ(湿度など)も読み込むことも考えているので
複数のグラフを作りたいと考えております。

とりあえず、
① X軸に日付時間、y軸に気温のデータのグラフ
② X軸に日付時間、y軸に気圧のデータのグラフ
の2種類を作りたいと考えております。

できれば今後C#を学んでいきたいため、この言語で作りたいと思っているのですが、

初心者にはハードルが高いと思ったら「R」で作ろうとも考えています...
私は初心者なので本当に未熟なのですが、
詳しい方いらっしゃいましたらご教示いただけたら幸いでございます。
(長文失礼しました)

自分で試したこと

https://www.sejuku.net/blog/85579
↑こちらのサイトのようにCSVを読み込もうとしてみましたが、
string型であり、double型に直そうとしたのですが、そちらの方もやり方がわかりません。。。

0

1Answer

目的としてCSV形式のデータをグラフ化したいということがあり、
そのCSVデータを読み込む方法がわかりません。

正しくCSVを読み込むなら、nugetでCSVHelperのようなライブラリを使うのが良いのではないかと思います。
サンプルは"CSVHelper"でググれば、それなりに出てくると思います。

初心者にはハードルが高いと思ったら「R」で作ろうとも考えています...

他に得意な言語があるなら、そちらでやるのも良いでしょう。
この機会にC#をしっかり習得したい、という事であれば、入門書やMicrosoftのドキュメントを読んで、基礎からしっかり学習する事をお勧めします。

string型であり、double型に直そうとしたのですが、そちらの方もやり方がわかりません。。。

やり方は色々ありますが、シンプルなのはLinqを使う方法だと思います。(usingにSystem.Linqが必要)
Array.ConvertAllなんてのもあるので、興味があればそちらも調べてみてください。

    string[] strArray = new[] { "1.1", "2.2", "3.3" };
    var dblArray = strArray.Select(double.Parse).ToArray();

※doubleに変換できない値があった場合は例外が発生します

浮動小数点数は誤差が発生するので、小数点以下の値が重要なのであれば、doubleではなくdecimalの使用を検討してください。

1Like

Comments

  1. @Fuji6003

    Questioner

    ご回答ありがとうございます...!

    これからC#を学んでいきたいと考えているため、
    色々と参考にさせて頂きながら頑張っていきたいです!

    この度は誠に親切なご回答、ありがとうございました...!

Your answer might help someone💌