Step3: 人体ヒートマップを作成する
サンプルコードの出力結果
出典:2006 年「国民衛生の動向」(財団法人 厚生統計協会)
2006年の死亡数(赤枠で囲まれた領域)をマップし、左の図を出力します。
ただし皮膚と乳房は除いています。
数値(この場合、死亡数)の少ない順に、青→水色→緑→黄→赤となります。
サンプルコードの説明
詳しくは、Javadocをご覧ください。
17行目:カラーバーを表示します。
39-107行目:
死亡数(数値)をマップする臓器とその値をsetScalar()で設定します。
関連するAgOrganの属性
属性
|
説明
|
デフォルト値
|
setter例 |
マップする数値
|
(Doubleの範囲の)任意の実数 |
Nan(非数) |
setScalar(100) |
関連するAgPropの属性
属性
|
説明
|
デフォルト値
|
setter例 |
マップするスカラー値の最大値、最小値設定
|
マップする数値に外れ値があった場合に、外れ値を指定した境界値に丸め、カラーが偏らないようにできます。 |
なし |
setScalarRange(0,100) |
サンプルコード
1 import jp.dbcls.ag.AgClient;
2 import jp.dbcls.ag.AgOrgan;
3 import jp.dbcls.ag.AgProp;
4
5 import java.util.ArrayList;
6
7 /**
8 * Step3 数値を色情報に変換して臓器にマップし、がんの部位別死亡数マップを作成する。
9 */
10 public class Step3 {
11 static AgProp prop = null;
12
13 static ArrayList organs = null;
14
15 public static void main(String[] args) throws Exception {
16 prop = new AgProp();
17 prop.setWinSize(240, 640);
18 /** カラーバーを表示します。 * */
19 prop.setColorBarOn(1);
20
21 organs = new ArrayList();
22 AgOrgan o;
23
24 /** 体幹と全身の骨と皮膚を背景として描画する * */
25 o = new AgOrgan();
26 o.setName("trunk"); // 体幹
27 organs.add(o);
28
29 o = new AgOrgan();
30 o.setName("skin"); // 皮膚
31 o.setOpacity(0.2);
32 organs.add(o);
33
34 o = new AgOrgan();
35 o.setName("bone"); // 骨
36 organs.add(o);
37
38 /** がんの部位別死亡数をsetScalar()でセットする * */
39 o = new AgOrgan();
40 o.setName("throat"); // 咽頭
41 o.setScalar(4034);
42 organs.add(o);
43
44 o = new AgOrgan();
45 o.setName("esophagus"); // 食道
46 o.setScalar(9405);
47 organs.add(o);
48
49 o = new AgOrgan();
50 o.setName("stomach"); // 胃
51 o.setScalar(32851);
52 organs.add(o);
53
54 o = new AgOrgan();
55 o.setName("colon"); // 結腸
56 o.setScalar(13305);
57 organs.add(o);
58
59 o = new AgOrgan();
60 o.setName("rectum"); // 直腸
61 o.setScalar(8530);
62 organs.add(o);
63
64 o = new AgOrgan();
65 o.setName("liver"); // 肝臓
66 o.setScalar(23421);
67 organs.add(o);
68
69 o = new AgOrgan();
70 o.setName("gallbladder"); // 胆嚢
71 o.setScalar(7476);
72 organs.add(o);
73
74 o = new AgOrgan();
75 o.setName("pancreas"); // 膵
76 o.setScalar(11933);
77 organs.add(o);
78
79 o = new AgOrgan();
80 o.setName("larynx"); // 喉頭
81 o.setScalar(964);
82 organs.add(o);
83
84 o = new AgOrgan();
85 o.setName("lung"); // 肺
86 o.setScalar(43921);
87 organs.add(o);
88
89 o = new AgOrgan();
90 o.setName("trachea"); // 気管
91 o.setScalar(43921);
92 organs.add(o);
93
94 o = new AgOrgan();
95 o.setName("prostate"); // 前立腺
96 o.setScalar(8840);
97 organs.add(o);
98
99 o = new AgOrgan();
100 o.setName("bladder"); // 膀胱
101 o.setScalar(3817);
102 organs.add(o);
103
104 o = new AgOrgan();
105 o.setName("nerve"); // 神経
106 o.setScalar(926);
107 organs.add(o);
108
109 String imageurl = AgClient.getImage(prop, organs);
110
111 String imagefile = "step3.png";
112 AgClient.saveFile(imageurl, imagefile);
113 }
114 }