» 詳しい使用方法や、エラーで展開できない際の対応方法などはこちら
[公式ガイドサンプル] CSVファイルにデータを書き出し、読み込んで2次元グラフを描く
このプログラムは、 「 VCSSLスタートアップガイド 」 の 「 CSVファイルとグラフの描画 」 の回に登場するサンプルコードです。 ここでは、そのサンプルコードを実行環境ごとダウンロードして、実際に実行してみる事ができます。 プログラミングガイド的な詳しい解説については、上記ページをご参照ください。
スポンサーリンク
使用方法
ダウンロードと展開(解凍)
まず、PC(スマホは未対応)で上の画面の「 ダウンロード 」ボタンを押してください。 するとZIP形式で圧縮されたファイルがダウンロードされます。
その後、ZIPファイルを右クリックして「すべて展開」や「ここに展開」などで展開(解凍)してください。 展開が成功すると、ZIPファイルと同じ名前のフォルダができ、その中にZIPファイルの中身が入っています。
» 展開がエラーで止まってしまう場合や、ファイル名が文字化けしてしまう場合は…
プログラムの起動
Windows をご使用の場合
上記でZIPファイルを展開したフォルダ内にある、以下のバッチファイルをダブルクリック実行してください:
もしプログラムを書き変えながら使いたい場合は、代わりに「 VCSSL_Editor__プログラム編集はこちら.bat 」を実行してください。
正常に起動できると、初回のみ、Java実行環境を入手するか等を尋ねられるので、適時答えて済ませると、プログラムが起動します。 2回目以降はすぐに起動します。
Linux 等をご使用の場合
ZIPファイルを展開したフォルダ内へコマンドライン端末で cd して、以下の通り入力して実行してください:
(プログラムの内容を書き変えながら使いたい場合は、代わりに VCSSL_Editor.jar を実行)
» javaコマンドが使用できない等のエラーが表示される場合は…
起動後
起動すると、まず同じフォルダ内に「 file.csv 」という名前のCSVファイルが作成され、 その中に以下の内容が書き出されます(メモ帳などのテキストエディタで開いてみてください):
- file.csv -0.1,0.010000000000000002
0.2,0.04000000000000001
0.30000000000000004,0.09000000000000002
0.4,0.16000000000000003
0.5,0.25
0.6000000000000001,0.3600000000000001
0.7000000000000001,0.4900000000000001
0.8,0.6400000000000001
0.9,0.81
1.0,1.0
(小さい誤差が入っているため少し読みづらいですが、)これはカンマ記号「 , 」区切りで、 2列(縦の並び)のデータが記載されているものです。 1行(横の並び)がグラフの1点に対応していて、左の値がX座標、右の値がY座標とみなされます。
ところどころ入っている小さい誤差( ...000001 など )を消すには、ファイルへの書き出し時に 丸め処理 を行えばよいのですが、今回のサンプルコードでは行っていません。 ちょうどこの次のサンプルコードで、丸め処理を扱って誤差部分を落とします。 このあたりの全体的な話の流れは 「 VCSSLスタートアップガイド 」 の 「 CSVファイルとグラフの描画 」 の回をご参照ください。
さて、上記のファイルが書き出された直後に、自動でグラフソフトが起動し、下図の2次元グラフが描画されます:
これは、上で書き出されたCSVファイル「 file.csv 」の中に記載されたデータが、2次元グラフとしてプロットされたものです。
別に、一旦ファイルに書き出さなくても、プログラム内のデータから直接グラフを描く事はできるのですが(アニメーション等ではそうした方が高速です)、 データの数値を目視で確認したり、別のソフトやプログラムと組み合わせて使用する場合などには、ファイルを介してデータをやり取りするのが便利です。
コード解説
このプログラムのコードはVCSSLで記述されています。
内容を書き変えて改造したい場合には、 プログラムのコード「 Graph2DWriteLoadCsv.vcssl 」をテキストエディタで開いて改造してください。 スクリプト言語なので、コンパイラなどの別ソフトは不要で、コードを書き換えるだけでOKです。 VCSSLはC系の単純な文法の言語なので、C言語などに触れた事のある方なら簡単に読めると思います。
コード全体は以下の通りです。
以上です。30行程度の非常に短いコードですね。 詳しい解説は、このサンプルコードの掲載元である 「 VCSSLスタートアップガイド 」 の 「 CSVファイルとグラフの描画 」 の回をご参照ください。
以下では、簡単に何をやっているかだけを、流し読みで見ていきましょう。まず先頭です:
最初の行は文字化け対策で、コードを書いてあるファイルの文字コードが「Shift_JIS」である事を明示しています。文字コードは他にも「UTF-8」などを使用できます。
続く「 import 〜 」の行では、2次元グラフを描く機能を提供してくれる「 tool.Graph2D 」ライブラリを読み込んでいます。 このリンク先のページで、ライブラリの仕様書(関数の一覧やそれぞれの機能説明など)を見る事ができます。
続きです:
ここでは、標準で読み込まれる System ライブラリの open 関数で、データを書き出すファイルを開いています。 開いたファイルにはID番号が割りふられるので、それを int 型の変数 fileID に控えています。これは、すぐ後で値を書き込む際に、どのファイルに書き込むのかを指定するのに使用します。
次は、実際にファイルにデータを書き出す部分です:
ここでは、for 文を使ったくり返し処理で、x と y の値を少しずつ変えながら、 writeln 関数でファイルに1行ずつ「x,y」の形で書き出しています。 詳細は、for 文については VCSSLスタートアップガイド の 「 くりかえし処理 」 の回、ファイルの書き出しについては同様に 「 ファイルの読み書き 」 の回などをご参照ください。
書き込みが終わると、ファイルを閉じています:
これはそのままですね。
その後はいよいよ、グラフを描く部分です:
ここではまず、tool.Graph2D ライブラリの newGraph2D 関数を用いて、2次元グラフソフトを起動しています。 プログラムによっては、複数のグラフソフトを起動して併用する事もあるため、個々のグラフを区別するために、グラスソフトには起動時に整数のID番号が割りふられます。 それは newGraph2D 関数の戻り値として返されるため、int 型変数 graphID に控えています。
続いて setGraph2DFile 関数を用いて、開きたいCSVファイルの名前「 file.csv 」をグラフソフトに伝えています。 先ほど書き出したファイルですね。一緒に、先ほど変数 graphID に格納した、グラフのID番号も渡しています(複数のグラフを起動している場合の区別のためです)。すると、グラフソフトが指示通りにCSVファイル「 file.csv 」を開いて、その中に記載されたデータを読み、グラフにプロット(描画)してくれます。
コード内容は以上です。
ライセンス
このVCSSL/Vnanoコード( 拡張子が「.vcssl」や「.vnano」のファイル )は実質的な著作権フリー(パブリックドメイン) である CC0 の状態で公開しています※。 記事中にC言語/C++/Java言語などでのサンプルコードが掲載されいてる場合は、それらについても同様です。 そのままでのご利用はもちろん、改造や流用などもご自由に行ってください。
※ ただし、このコードの配布フォルダ内には、ダウンロード後すぐに実行できるように、 VCSSLの実行環境も同梱されており、そのライセンス文書は「 License 」フォルダ内に同梱されています (要約すると、商用・非商用問わず自由に使用できますが、使用の結果に対して開発元は一切の責任を負いません、といった具合の内容です)。 配布フォルダ内の各構成物の一覧やライセンスについては「 ReadMe_使用方法_必ずお読みください.txt 」をご参照ください。
※ Vnano の実行環境については、別途スクリプトエンジンのソースコードも一般公開しており、 何らかのソフトウェア内に組み込んでご利用いただく事も可能です。詳細はこちらをご参照ください。
この記事中の商標などについて
- OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
- Windows は、米国 Microsoft Corporation の米国およびその他の国における登録商標です。この記事は独立著作物であり、Microsoft Corporation と関連のある、もしくはスポンサーを受けるものではありません。
- Linux は、Linus Torvalds 氏の米国およびその他の国における商標または登録商標です。
- その他、文中に使用されている商標は、その商標を保持する各社の各国における商標または登録商標です。
[公式ガイドサンプル] 四則演算の計算順序や、カッコを使った順序指定 |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。四則演算が計算される順序や、カッコを使って順序を指定する方法を例示します。 |
[公式ガイドサンプル] 割り算の結果や、余りなどを画面に表示する |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。整数や小数(実数)における割り算結果や、整数の場合の余りを画面に表示します。 |
[公式ガイドサンプル] かけ算と割り算の結果を画面に表示する |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。かけ算と割り算を行って、結果を画面に表示します。 |
[公式ガイドサンプル] 引き算の結果を画面に表示する |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。引き算を行って、結果を画面に表示します。 |
[公式ガイドサンプル] 式を複数行にわたって書く |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。足し算を行う式を、複数行にわたって記述します。 |
[公式ガイドサンプル] 足し算の結果を画面に表示する |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。足し算の結果を求めて、画面に表示します。 |
[公式ガイドサンプル] CSVファイルにデータを書き出し&読み込んで、複雑な3次元曲面のグラフを描く(魔法陣形) |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、魔法陣のような3次元曲面のグラフを描画します。 |
[公式ガイドサンプル] CSVファイルにデータを書き出し&読み込んで、複雑な3次元曲面のグラフを描く(花形) |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、花の形の3次元曲面のグラフを描画します。 |
[公式ガイドサンプル] CSVファイルにデータを書き出し、読み込んで3次元のメッシュグラフを描く |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、3次元のメッシュグラフを描画します。 |
[公式ガイドサンプル] CSVファイルにデータを書き出し、読み込んで3次元の線グラフを描く |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、3次元の線グラフを描画します。 |
[公式ガイドサンプル] CSVファイルに書かれた数値データを、配列として読み込んで表示する |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルに記載された数値データを、読み込んで配列に格納してから、内容を画面に表示します |
[公式ガイドサンプル] CSVファイルにデータを丸めて書き出し、読み込んで2次元グラフを描く |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを、丸め処理を行った上で書き出し、さらにそれを読み込んで、2次元グラフを描画します。 |
[公式ガイドサンプル] CSVファイルにデータを書き出し、読み込んで2次元グラフを描く |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、2次元グラフを描画します。 |
[公式ガイドサンプル] CSVファイルを読み込んで2次元グラフを描く |
|
|
「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルに記載されたデータを読み込み、2次元グラフを描画します。 |