4.7. データグラフの作成

データグラフは平均unhappinessのグラフで、HeatbugObserverSwarm内のオブジェクトの1つです。以下にオブジェクトの作成に必要なコードを示します。

// unhappinessを表示するグラフウィジットを作成
unhappyGraph = [EZGraph createBegin: [self getZone]];
[unhappyGraph setTitle: "Unhappiness of bugs vs. time"];
[unhappyGraph setAxisLabelsX: "time" Y: "unhappiness"];
unhappyGraph = [unhappyGraph createEnd] ;

[unhappyGraph createAverageSequence: "unhappiness"
 withFeedFrom: [heatbugModelSwarm getHeatbugList]
 andSelector: M(getUnhappiness)] ;

最初のステップでEZGraphのインスタンスを作成し、そのキャプションをセットします。次にそのグラフ内にSequence(この場合はAverageSequence)が作成されます。一般に、Sequenceには、ターゲットオブジェクトとそのオブジェクトから獲得するデータを伴ったメッセージが必要です。データはグラフの1行としてプロットされます。

AverageSequenceの場合、オブジェクトのコレクション全体がそれに渡されます。次にAverageSequenceは与えられたメッセージ(この場合はgetUnhappiness)を使って、そのコレクション(この場合はList)のすべてのオブジェクトからデータを取得し、それらを平均してデータポイントを生成します。