ProcessingでCSVファイルを読み込む方法を調べました。
とりあえず、ネットで検索して見つけたサイトがこちらです。コピペしてProcessing上で実行するとたしかにCSVの値が出力されました。
ただ、void draw()でグラフィックを書き出す場合はそのままコピペしてもエラーが出てうまく動きませんでした。
その解決策は下の文をvoid setup()の中に書くということでした。
int csvWidth=0; String lines[] = loadStrings("fee.csv"); //calculate max width of csv file for (int i=0; i < lines.length; i++) { String [] chars=split(lines[i],','); if (chars.length>csvWidth){ csvWidth=chars.length; } } //create csv array based on # of rows and columns in csv file csv = new String [lines.length][csvWidth]; LENGTH =lines.length; // println(LENGTH); //parse values into 2d array for (int i=0; i < lines.length; i++) { String [] temp = new String [lines.length]; temp= split(lines[i], ','); for (int j=0; j < temp.length; j++){ csv[i][j]=temp[j]; } }
ただし、下のCSVを定義する2次元配列とCSVの行数を格納する変数をvoid setup()の外に書かないと動きません。
int LENGTH; String [][] csv;
void draw()の中でCSVの値を取り出すには、以下のようにしてfor文を回せばOKです。
for(int i=1; i< LENGTH; i++){ // LENGTH は void setup()中で lines.lengthの値を代入されている value =Float.parseFloat(csv[i][1]) ;//String型のCSVの値をFloat型にキャスト noStroke(); fill(256,256,0); ellipse(x,y,value,value);//CSVの値を半径とした円を書く }
この記事の上部の画像は総務省 統計局のサイトで公開されている大卒者の初任給の額をインフォグラフィックにしたものです。なかなか面白い!
コメントを残す