raingoesup

「中高生のときやりたかったブログを今やる」

バー

サーモグラフィみたいな、値の大小を色で表現するグラフが書きたいのだけれどいまいちどんなソフトを使えばいいかわからないからprocessingで作ることにした。

できた。タブ区切りのファイルで値を読み込んで、値を色相値に変換して各座標にその色の正方形を描画する。

 

用意するファイル

12 35
45 -100
56 30
70 30
85 46
66 80

 

値の範囲は-100~100。最大最小から自動的にスケーリングしてくれる機能をつけてもいいかも。

 

コード

String lin;
String lines[];

void setup() {
  lines = loadStrings("color.txt");

  size(200,600);
  colorMode(HSB,360,100,100);
}

void draw() {
  for(int i = 0; i < 6; i++){
    lin =lines[i];
    String[] co = split(lin, '\t');
    for(int j = 0; j < 2; j++){
      float x = float(co[j]);
      float shiki = 240 - ((x + 100) * 240 / 200);
      noStroke();
      fill(shiki, 100, 100);
      rect(j*100, i*100, 100, 100);
    }
  }
}

 

processingでのファイルからの文字列読み込みはやったことなかったので適当に調べた。カラーモード指定便利だなあ。多分青(240)~赤(0)の範囲で色相を変化させればいいので、これであってるはず。実際使うときはもっとマス小さくする。軸の表示を簡単にでもできるようにしておくとちゃんとツールとして最低限使えるかな。あと行数列数から自動的にi,jの最大は決めれたほうがいい。