• 締切済み

C言語 3次元グラフ

今、スペクトラムアナライザという計測機器をC言語を用いてデータを取得し、CSVファイルに書き込みました。その後、CSVファイルを開き、エクセルで3Dグラフ(等高線を用いました)にしようとしたのですが系列が255個までという制限がありました。私の取得したデータは461ポイントあるのでグラフを2分割しなければなりません。 CSVファイルの中身の一例としては 周波数,8000,9000,10000・・・ 11:00,-60E01,-61E01,-61E01・・・ 11:01,-62E01,-61E01,-60E01・・・ ・ ・ ・ ちょっと見づらいですが、1行目が周波数で1列目が取得した時間で2行目以降は周波数における電力です。プログラムとしてはデータを取得するコマンドを1秒ごとに送り、1行ごとにCSVファイルに書き込みをしています。 前置きが長くなりましたが、これを3Dグラフにするには何を学習しなければならないでしょうか?友達はWindowsプログラミングで書けばいいよと教えてくれたので、猫でも分かるWindowsプログラミングを買ってきたのですが中々難しそうで最初から挫折しそうです。後、いろいろ調べているとgnuplotという単語が良く出てくるのですが、 1)gnuplotで3次元グラフは作成できますか? 2)仮にgnuplotで3次元グラフが描けるなら、Windowsプログラミングとgnuplotではどちらを学習したほうがいいでしょうか? 参考書やお勧めのURLがあったらお願いします。

みんなの回答

回答No.2

>1)gnuplotで3次元グラフは作成できますか? 私はほとんど使用しませんがgnuplotで3次元グラフを描くことができます。 しかしcsv(カンマ切り)ファイルをそのまま扱えるわけではないようので、gnuplotで読める形式に変換しておく必要が生じます。xyz203さんの場合、系列数が461もあってexcelで読めないとのことなので、変換プログラムを作って対処ということになりますかね。 詳細は↓が参考になると思います。グラフ出力例もあります。 http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/index-gnuplot.html >Windowsプログラミングとgnuplotではどちらを学習 前者はえらく範囲が広いですね。 例えばVisual Studioでプログラミングするのだとしてもバージョン、言語、ライブラリなど選択肢がたくさんありますが、プログラミング言語の習得だけではグラフを描くところまではできませんので、DirextXやGDI+などの描画を実現するためのライブラリも含め、関連する技術を総合的に習得する必要があります。 グラフ作成ツール系言語として自己完結している gnuplot と比較するのはどうかと思いますが、3次元グラフ作成だけに留まらず工学系で応用できる技術としてC++などのプログラミングに手を染めること有益だと思います。

xyz203
質問者

お礼

回答有難うございます。 gunplotは数式しかグラフにできないのかなと思ってましたが、そうでもなさそうですね。 >>自己完結している gnuplot グラフの出力をメインとしているので今回はgunplotでがんばろうと思います。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

あくまで「グラフの出力」が目的で手段がどうでもいいのであれば、 ・Excel2007を使う ・OpenOffice.org Calcを使う って手があります。 あるいは何らかの手段でcsvの行列入れ替えができれば2003以前のExcelでもグラフを書くことは可能でしょう。

xyz203
質問者

お礼

回答有難うございます。 Excel2007でグラフを作るとどうしても255までと言われてしまいます。また、私が取得するデータは1日分ありますので相当の量があり行列を入れ替えることができませんでした。 私の説明が足らなくてすいませんでした。

関連するQ&A

専門家に質問してみよう