Datamate.js

プログラミング初心者のための
データビジュアライゼーションサポートライブラリ


ダウンロードと設定

ダウンロード

Datamate.js ver.1.1.4 beta

Datamate.jsを読み込む

<script src="Datamate.js"></script>

使ってみる(1つのデータ)

1. データをつくる ( Datamate.make()を使う )

function setup()
{
    Datamate.make('Date', ['2021/1','2021/2','2021/3','2021/4','2021/5','2021/6','2021/7','2021/8','2021/9','2021/10','2021/11','2021/12']);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
}

2. データを確認する RUN ( Datamate.plot()を使う )

function setup()
{
	Datamate.make("日付", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.plot(); // データを表示
}

3. データをグラフィックに反映させる RUN ( Datamate.value()を使う )

function setup()
{
	createCanvas(windowWidth, windowHeight);
    Datamate.make('日付', ['2021/1','2021/2','2021/3','2021/4','2021/5','2021/6','2021/7','2021/8','2021/9','2021/10','2021/11','2021/12']);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
}

function draw()
{
	background(255);
	const date = Datamate.value('日付', 0);				// 0番目の値をとりだす。
	const value = Datamate.value('京都の降水量', 0);		// 0番目の値をとりだす。
	circle(mouseX, mouseY, value);
	text('京都の降水量\n' + date + '\n' + value.toFixed(2), mouseX, mouseY);
}

4. データを時間で切り換える RUN ( Datamate.current()を使う )

function setup()
{
	createCanvas(windowWidth, windowHeight);
    Datamate.make('日付', ['2021/1','2021/2','2021/3','2021/4','2021/5','2021/6','2021/7','2021/8','2021/9','2021/10','2021/11','2021/12']);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.play(1.0);
}

function draw()
{
	background(255);
	const date = Datamate.current('日付');								// 現在の値をとりだす。
	const value = Datamate.current('京都の降水量');						// 現在の値をとりだす。
	circle(mouseX, mouseY, value);
	text('京都の降水量\n' + date + '\n' + value, mouseX, mouseY);
}

5. 自分で工夫する

function setup()
{
	createCanvas(windowWidth, windowHeight);
    Datamate.make('日付', ['2021/1','2021/2','2021/3','2021/4','2021/5','2021/6','2021/7','2021/8','2021/9','2021/10','2021/11','2021/12']);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.play(1.0);
}

function draw()
{
	// ここを自分で工夫してみる //
	//background(255);
	//const date = Datamate.current('日付');								// 現在の値をとりだす。
	//const value = Datamate.current('京都の降水量');						// 現在の値をとりだす。
	//circle(mouseX, mouseY, value);
	//text('京都の降水量\n' + date + '\n' + value, mouseX, mouseY);
}

使ってみる(複数のデータ)

1. データをつくる

function setup()
{
	Datamate.make("日付", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);
}

2. データを確認する RUN

function setup()
{
	Datamate.make("日付", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);
	Datamate.plot(); // データを表示
}

3. データをグラフィックに反映させる RUN ( Datamate.makeArea(), Datamate.bindAreas(), Datamate.aera()を使う )

function setup()
{
	createCanvas(windowWidth, windowHeight);
	Datamate.make("日付", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);

	Datamate.makeArea(0, 0, width, height, 3, 2);	// キャンバス内を3列x2行に分割してエリア作成 //
	Datamate.bindAreas([1,2,3,4,5,6]);				// データ番号1-6(札幌ー那覇)をエリアに自動割り当て
}

function draw()
{
	background(255);
	drawData(1);		// データ1(札幌)を描画
	drawData(2);		// データ2(東京)を描画
	drawData(3);		// データ3(名古屋)を描画
	drawData(4);		// データ4(京都)を描画
	drawData(5);		// データ5(福岡)を描画
	drawData(6);		// データ6(那覇)を描画
}

function drawData(_index)
{
	const area = Datamate.area(_index);						// 割り当てられたエリアをとりだす
	const name = area.name;						// データのヘッダ名をとりだす
	const date = Datamate.value('日付', 0);					// 0番目の値をとりだす。
	const value = Datamate.value(name, 0);				// 0番目の値をとりだす。
	rect(area.left, area.top, area.width, area.height);	// エリアの矩形を描画
	circle(area.centerX, area.centerY, value);
	text(name + '\n' + date + '\n' + value.toFixed(2), area.centerX, area.centerY);
}

4. データを時間で切り換える RUN

function setup()
{
	createCanvas(windowWidth, windowHeight);
	Datamate.make("日付", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);

	Datamate.makeArea(0, 0, width, height, 3, 2);	// キャンバス内を3列x2行に分割してエリア作成 //
	Datamate.bindAreas([1,2,3,4,5,6]);				// データ番号1-6(札幌ー那覇)をエリアに自動割り当て

	Datamate.play(1.0);
}

function draw()
{
	background(255);
	drawData(1);		// データ1(札幌)を描画
	drawData(2);		// データ2(東京)を描画
	drawData(3);		// データ3(名古屋)を描画
	drawData(4);		// データ4(京都)を描画
	drawData(5);		// データ5(福岡)を描画
	drawData(6);		// データ6(那覇)を描画
}

function drawData(_index)
{
	const area = Datamate.area(_index);						// 割り当てられたエリアをとりだす
	const name = area.name;						// データのヘッダ名をとりだす
	const date = Datamate.current('日付');					// 現在の値をとりだす。
	const value = Datamate.current(name);					// 現在の値をとりだす。
	rect(area.left, area.top, area.width, area.height);	// エリアの矩形を描画
	circle(area.centerX, area.centerY, value);
	text(name + '\n' + date + '\n' + value.toFixed(2) + "mm", area.centerX, area.centerY);
}

5. 自分で工夫する

setup()とdraw()は定型です。drawData()の中で描画を工夫します。

function setup()
{
	createCanvas(windowWidth, windowHeight);
	Datamate.make("日付", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);

	Datamate.makeArea(0, 0, width, height, 3, 2);	// キャンバス内を3列x2行に分割してエリア作成 //
	Datamate.bindAreas([1,2,3,4,5,6]);				// データ番号1-6(札幌ー那覇)をエリアに自動割り当て

	Datamate.play(1.0);
}

function draw()
{
	background(255);
	drawData(1);		// データ1(札幌)を描画
	drawData(2);		// データ2(東京)を描画
	drawData(3);		// データ3(名古屋)を描画
	drawData(4);		// データ4(京都)を描画
	drawData(5);		// データ5(福岡)を描画
	drawData(6);		// データ6(那覇)を描画
}

function drawData(_index)
{
	// ここを自分で工夫してみる //
	//const area = Datamate.area(_index);						// 割り当てられたエリアをとりだす
	//const date = Datamate.current('日付');					// 現在の値をとりだす。
	//const value = Datamate.current(name);							// 現在の値をとりだす。
	//rect(area.left, area.top, area.width, area.height);	// エリアの矩形を描画
	//circle(area.centerX, area.centerY, value);
	//text(name + '\n' + date + '\n' + value.toFixed(2) + "mm", area.centerX, area.centerY);
}

描画を工夫する

描画を工夫する1 RUN

function setup()
{
	createCanvas(windowWidth, windowHeight);
	Datamate.make("Date", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);

	Datamate.makeArea(0, 0, width, height, 6, 1);	// ウィンドウのサイズを6列x1行に分割してエリア作成 //
	Datamate.bindAreas([1,2,3,4,5,6]);				// データ番号1-6(札幌ー那覇)をエリアに自動割り当て

	Datamate.play(1.0);
}

function draw()
{
	background(255);
	drawData(1);
	drawData(2);
	drawData(3);
	drawData(4);
	drawData(5);
	drawData(6);
}

function drawData(_index)
{
	const area = Datamate.area(_index);
	const name = area.name;
	const date = Datamate.current("Date");
	const value = Datamate.current(name, false);
	const size = Datamate.current(name, true, 10, area.width);

	stroke(0);
	strokeWeight(1);
	noFill();
	rect(area.left, area.top, area.width, area.height);

	noStroke();
	fill(0,200);
	circle(area.centerX, area.centerY, size);
	text(name + "\n" + date + "\n" + value + "mm", area.left + 50, area.top + 70);
}

描画を工夫する2 RUN

function setup()
{
	createCanvas(windowWidth, windowHeight);
	Datamate.make("Date", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);

	Datamate.makeArea(0, 0, width, height, 1, 6);	// ウィンドウのサイズを1列x6行に分割してエリア作成 //
	Datamate.bindAreas([1,2,3,4,5,6]);				// データ番号1-6(札幌ー那覇)をエリアに自動割り当て

	Datamate.play(1.0);
}

function draw()
{
	background(255);
	drawData(1);
	drawData(2);
	drawData(3);
	drawData(4);
	drawData(5);
	drawData(6);
}

function drawData(_index)
{
	const area = Datamate.area(_index);
	const date = Datamate.current("Date");
	const value = Datamate.current(name, false);
	const count = Datamate.current(name, false, 1, 100);

	stroke(0);
	strokeWeight(1);
	noFill();
	rect(area.left, area.top, area.width, area.height);

	for (let i=0; i<count; i++) {
		const x = map(random(), 0, 1, area.left - 50, area.right);
		line(x + 50, area.top, x, area.bottom);
	}
	noStroke();
	fill(0);
	text(name + "\n" + date + "\n" + value + "mm", area.left + 50, area.top + 70);
}

描画を工夫する3 RUN

function setup()
{
	createCanvas(windowWidth, windowHeight);
	Datamate.make("Date", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);

	Datamate.makeArea(0, 0, width, height, 6, 1);	// ウィンドウのサイズを6列x1行に分割してエリア作成 //
	Datamate.bindAreas([1,2,3,4,5,6]);				// データ番号1-6(札幌ー那覇)をエリアに自動割り当て

	Datamate.play(1.0);
}

function draw()
{
	background(255);
	drawData(1);
	drawData(2);
	drawData(3);
	drawData(4);
	drawData(5);
	drawData(6);
}

function drawData(_index)
{
	const area = Datamate.area(_index);
	const name = area.name;
	const date = Datamate.current("Date");
	const value = Datamate.current(name, false);
	const count = Datamate.current(name, false, 1, 100);

	stroke(0);
	strokeWeight(1);
	noFill();
	rect(area.left, area.top, area.width, area.height);

	noStroke();
	fill(0, 10);
	for (let i=0; i<count; i++) {
		const h = map(random(), 0, 1, area.top, area.bottom);
		rect(area.left, area.top, area.width, h);
	}

	fill(255, 255, 0);
	text(name + "\n" + date + "\n" + value + "mm", area.left + 50, area.top + 70);
}

描画を工夫する4 RUN

function setup()
{
	createCanvas(windowWidth, windowHeight);
	Datamate.make("Date", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);

	Datamate.makeArea(0, 0, width, height, 6, 1);	// ウィンドウのサイズを6列x1行に分割してエリア作成 //
	Datamate.bindAreas([1,2,3,4,5,6]);				// データ番号1-6(札幌ー那覇)をエリアに自動割り当て

	Datamate.play(1.0);
}

function draw()
{
	background(255);
	drawData(1);
	drawData(2);
	drawData(3);
	drawData(4);
	drawData(5);
	drawData(6);
}

function drawData(_index)
{
	const area = Datamate.area(_index);
	const name = area.name;
	const date = Datamate.current("Date");
	const value = Datamate.current(name, false);
	const count = Datamate.current(name, true, 1, 100);

	stroke(0);
	strokeWeight(1);
	noFill();
	rect(area.left, area.top, area.width, area.height);

	fill(0, 10);
	stroke(0, 40);
	let prevX = 0;
	let prevY = 0;
	for (let i=0; i<count; i++) {
		const x = map(random(), 0, 1, area.left, area.right - 10);
		const y = map(random(), 0, 1, area.top, area.bottom - 10);
		//circle(x, y, 10);
		line(x, y, area.centerX, area.bottom);
		line(x, y, area.centerX, area.top);
		prevX = x;
		prevY = y;
	}

	fill(0);
	text(name + "\n" + date + "\n" + value + "mm", area.left + 50, area.top + 70);
}

描画を工夫する5 RUN

function setup()
{
	createCanvas(windowWidth, windowHeight);
	Datamate.make("Date", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);

	Datamate.makeArea(0, 0, width, height, 3, 2);	// ウィンドウのサイズを3列x2行に分割してエリア作成 //
	Datamate.bindAreas([1,2,3,4,5,6]);				// データ番号1-6(札幌ー那覇)をエリアに自動割り当て

	Datamate.play(1.0);
}

function draw()
{
	background(255);
	drawData(1);
	drawData(2);
	drawData(3);
	drawData(4);
	drawData(5);
	drawData(6);
}
function drawData(_index)
{
	const area = Datamate.area(_index);
	const name = area.name;
	const date = Datamate.current("Date");
	const value = Datamate.current(name, false);
	const count = Datamate.current(name, true, 1, 100);

	stroke(0);
	strokeWeight(1);
	noFill();
	rect(area.left, area.top, area.width, area.height);

	stroke(0, 50);
	fill(0);
	for (let i=0; i<count; i++) {
		const angle = map(i, 0, count, 0, 360);
		const size = map(random(), 0, 1, 1, 10);
		const gain = map(random(), 0, 1, 0.4, 0.5);
		const radius = Datamate.current(name, true, 1, area.height * gain);
		const x = cos(radians(angle)) * radius + area.centerX;
		const y = sin(radians(angle)) * radius + area.centerY;
		circle(x, y, size);
		line(area.centerX, area.centerY, x, y);
	}

	fill(0);
	text(name + "\n" + date + "\n" + value + "mm", area.left + 50, area.top + 70);
}

描画を工夫する6 RUN

function setup()
{
	createCanvas(windowWidth, windowHeight);
	Datamate.make("Date", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);
	Datamate.make('福岡の降水量', [45.5,79.5,116.5,66.0,133.5,123.0,45.5,881.5,246.5,44.0,152.5,45.0]);
	Datamate.make('那覇の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);

	Datamate.makeArea(0, 0, width, height, 3, 2);	// ウィンドウのサイズを3列x2行に分割してエリア作成 //
	Datamate.bindAreas([1,2,3,4,5,6]);				// データ番号1-6(札幌ー那覇)をエリアに自動割り当て

	Datamate.play(1.0);
}

function draw()
{
	background(255);
	drawData(1);
	drawData(2);
	drawData(3);
	drawData(4);
	drawData(5);
	drawData(6);
}

function drawData(_index)
{
	const area = Datamate.area(_index);
	const name = area.name;
	const date = Datamate.current("Date");
	const value = Datamate.current(name, false);
	const count = Datamate.current(name, true, 1, 100);
	const radius = Datamate.current(name, true, 10, 200);
	const gain = Datamate.current(name, true, 0, 0.5);
	const freq = Datamate.current(name, true, 2, 8);

	stroke(0);
	strokeWeight(1);
	noFill();
	rect(area.left, area.top, area.width, area.height);

	stroke(0,50);
	fill(0);
	for (let i=0; i<count; i++) {
		const radius = Datamate.current(name, true, 1, area.height * gain);
		const angle = map(i, 0, count, -180, 180) * freq;
		const size = map(random(), 0, 1, 10, 30);
		const x = map(i, 0, count, area.left, area.right);
		const y = sin(radians(angle)) * radius + area.centerY;
		fill(0);
		circle(x, y, size);
		line(x, y, area.centerX, area.centerY)

	}

	fill(0);
	text(name + "\n" + date + "\n" + value + "mm", area.left + 50, area.top + 70);
}

逆引きリファレンス

データをつくる

書式)指定したデータ名、値でデータセットを作ります。

Datamate.make('データ名', [値0, 値1,...]);

書式)指定したファイルからデータセットを作ります。

Datamate.make('ファイルパス');

例)1組のデータをつくる

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
}

例)2組のデータをつくる

function setup()
{
	Datamate.make("日付", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
}

例)CSVファイルからデータをつくる

function setup()
{
	Datamate.make("test.csv");	// 同じ場所にtest.csvファイルを配置しているとする。
}

データを確認する

書式)作ったデータを視覚的に確認します。

Datamate.plot();

例)1組のデータセットを作成して、どのようなデータセットになっているかを視覚的に確認する。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.plot();
}

値を取り出す

書式)データセットから指定位置の値を取り出します。

let value = Datamate.value('データ名', データの位置);

書式)データセットから指定位置の値を取り出します。値は最小値ー最大値の範囲にマッピングされます。

let value = Datamate.value('データ名', データの位置, 最小値, 最大値);

例)データセットからデータの0番目の値を取り出します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	let value = Datamate.value('一年間の降水量', 0);	// 0番目の値を取得 -> 118.5
}

例)データセットからデータの0番目の値を取り出します。値は1-100の範囲にマッピングされます。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	let value = Datamate.value('一年間の降水量', 0, 1, 100);	// 0番目の値を取得 -> 7.28(118.5を、データの最小値を1、最大値を100にした場合として換算)
}

値を取り出す(割合)

書式)指定位置の値が、同じデータセット内に占める割合を0-1の範囲で取り出します。

let value = Datamate.rate('データ名', データの位置);

書式)指定位置の値が、同じデータセット内に占める割合を、最小値ー最大値の範囲にマッピングして取り出します。

let value = Datamate.rate('データ名', データの位置, 最小値, 最大値);

書式)指定位置の値が、他のデータセット内の指定位置の値に占める割合を、最小値ー最大値の範囲にマッピングして取り出します。

let value = Datamate.rate('データ名', データの位置, 最小値, 最大値, Datamate.ROW);

例)0番目の値が、同じデータセット内に占める割合を0-1の範囲で取り出します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	let value = Datamate.rate('一年間の降水量', 0);			// 0番目の値を取得 -> 0.0476(118.5は、データセットの中では0.0476の割合)
}

例)0番目が値が、同じデータセット内に占める割合を、0-100の範囲にマッピングして取り出します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	let value = Datamate.rate('一年間の降水量', 0, 0, 100);	// 0番目の値を取得 -> 4.76(0.0476を、0-100の値に変換)
}

例)0番目の値が、他のデータセット内の指定位置の値に占める割合を、0-100の範囲にマッピングして取り出します。

function setup()
{
	Datamate.setValues("Naha", [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);
	Datamate.setValues("Sapporo", [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	let value1 = Datamate.rate('Naha', 0, 0, 100, Datamate.ROW);		// Nahaの0番目の値を取得 -> 56.6 (Naha:Sapporo = 118.5:90.5 = 56.6:43.3)
	let value2 = Datamate.rate('Sapporo', 0, 0, 100, Datamate.ROW);		// Sapporoの0番目の値を取得 -> 43.3 (Naha:Sapporo = 118.5:90.5 = 56.6:43.3)
}

データを再生する

書式)指定したフレームレートの時間間隔で、データ位置を遷移させることを開始します(Datamate.current()と併用します)。

Datamate.play(フレームレート);

例)指定したフレームレートの時間間隔で、データ位置を遷移させることを開始します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.play(1.0);			// フレームレート1.0で再生(1秒ごとにデータ位置が1つ進む)
}

データを取り出す(再生中の値)

書式)現在のデータ位置の値を取り出します。

Datamate.current('データ名');

書式)現在のデータ位置の値を取り出します。次のデータ位置の値との間を補間して取り出すか設定します。

Datamate.current('データ名', 補間設定);

書式)現在のデータ位置の値を取り出します。次のデータ位置の値との間を補間して取り出すか設定します。値を最小値ー最大値の範囲にマッピングします。

Datamate.current('データ名', 補間設定, 最小値, 最大値);

例)現在のデータ位置の値を取り出します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.play(1.0);			// フレームレート1.0で再生(1秒ごとに取得する番号が1つ進む)
}

function draw()
{
	let value = Datamate.current('一年間の降水量');
}

例)現在のデータ位置の値を取り出します。次のデータ位置の値との間を補間します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.play(1.0);			// フレームレート1.0で再生(1秒ごとに番号が1つ進む)
}

function draw()
{
	let value = Datamate.current('一年間の降水量', true);
}

例)現在のデータ位置の値を取り出します。次のデータ位置の値との間を補間します。値は10-100の間にマッピングされます。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.play(1.0);			// フレームレート1.0で再生(1秒ごとに番号が1つ進む)
}

function draw()
{
	let value = Datamate.current('一年間の降水量', true, 10, 100);
}

表示エリアを作成する

書式)指定した矩形内に、指定した数のエリアを作成します。

Datamate.makeArea(x座標, y座標, 横幅, 高さ, 列の分割数, 行の分割数);

例)4つのデータセットのために、キャンバスの範囲で2x2のエリアを作成します。

function setup()
{
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);

	makeArea(0, 0, width, height, 2, 2);
}

表示エリアを紐づける

書式)指定したエリアとデータセットを紐づけます。

Datamate.bindArea('データ名', 列位置, 行位置);

例)4つのデータセットのために、キャンバスの範囲で2x2のエリアを作成し、それぞれのエリアを紐づけます。

function setup()
{
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);

	makeArea(0, 0, width, height, 2, 2);	// 2x2のエリアを作成
	bindArea('札幌の降水量', 0, 0);			// 0,0のエリアと紐づけ
	bindArea('東京の降水量', 0, 1);			// 0,1のエリアと紐づけ
	bindArea('名古屋の降水量', 1, 0);			// 1,0のエリアと紐づけ
	bindArea('京都の降水量', 1, 1);			// 1,1のエリアと紐づけ
}

表示エリアを一括で紐づける

書式)指定したエリアとデータセットを一括で紐づけます。

Datamate.bindAreas([データセット番号, データセット番号,..]);

例)4つのデータセットのために、キャンバスの範囲で2x2のエリアを作成し、それぞれのエリアを一括で紐づけます。

function setup()
{
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);

	makeArea(0, 0, width, height, 2, 2);	// 2x2のエリアを作成
	bindAreas([0,1,2,3]);					// データセット0-3を各エリアに一括で紐づける
}

表示エリアを取り出す

書式)データセットと紐づけたエリア情報を取得します。

Datamate.area('データ名'(またはデータセット番号));

例)4つのデータセットのために、キャンバスの範囲で2x2のエリアを作成し、それぞれのエリアを一括で紐づます。描画時に'札幌の降水量'のエリアを取得します。

function setup()
{
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);

	makeArea(0, 0, width, height, 2, 2);	// 2x2のエリアを作成
	bindAreas([0,1,2,3]);					// データセット0-3を各エリアに一括で紐づける
}

function draw()
{
	const area = Datamate.area('札幌の降水量');			// '札幌の降水量'のエリアを取得
	rect(area.left, area.top, area.width, area.height);	// エリアの各値から、矩形を描画
}


リファレンス

Datamate.make()

Datamate.make(name, values);

Datamateで使用するデータセットを追加します。

パラメータ

name:String 作成するデータセットの名前

values:Array 作成するデータの値

戻り値

なし

Datamate.make(filePath);

CSVファイルから自動でデータセットを作成します。

パラメータ

filePath:String CSVファイルのパス

戻り値

なし

例)1組のデータをつくる

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
}

例)2組のデータをつくる

function setup()
{
	Datamate.make("日付", ["2021/1","2021/2","2021/3","2021/4","2021/5","2021/6","2021/7","2021/8","2021/9","2021/10","2021/11","2021/12"]);
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
}

例)CSVファイルからデータをつくる

function setup()
{
	Datamate.make("test.csv");	// 同じ場所にtest.csvファイルを配置しているとする。
}

Datamate.plot()

Datamate.plot();

内蔵プロッタを呼び出し、現在のデータセットの状態を表示します。

引数

パラメータ
なし

戻り値

パラメータ
なし

例)1組のデータセットを作成して、どのようなデータセットになっているかを視覚的に確認する。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.plot();
}

Datamate.value()

Datamate.value(name, index, [min, max]);

nameで指定した名前または番号のデータセットの内、indexで指定したデータ番号の値を取り出します。またminとmaxを指定した場合、データセット内の最小値と最大値をmin, maxの値にマッピングします。

引数

パラメータ概要
nameString|Numberデータセットの名前または番号
indexNumberデータセットのデータ番号
minNumberマッピング後の最小値
maxNumberマッピング後の最大値

戻り値

概要
String|Number指定位置の値。値が数値で、かつmin, maxを指定した場合は、マッピングされた数値が返される

例)データセットからデータの0番目の値を取り出します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	let value = Datamate.value('一年間の降水量', 0);	// 0番目の値を取得 -> 118.5
}

例)データセットからデータの0番目の値を取り出します。値は1-100の範囲にマッピングされます。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	let value = Datamate.value('一年間の降水量', 0, 1, 100);	// 0番目の値を取得 -> 7.28(118.5を、データの最小値を1、最大値を100にした場合として換算)
}

Datamate.rate()

let value = Datamate.rate(name, index, min, max);

nameで指定した名前または番号のデータセットの内、indexで指定した位置の値の割合を0-1の範囲で取り出します。またminとmaxを指定した場合、その列の最小値と最大値をmin, maxの値にマッピングします。

引数

パラメータ概要
nameString|Numberデータテーブルの列の名前または番号
indexNumberデータテーブルの行の番号
minNumberマッピング後の最小値
maxNumberマッピング後の最大値

戻り値

概要
String|Number指定位置の値。値が数値で、かつmin, maxを指定した場合は、マッピングされた数値が返される

例)0番目の値が、同じデータセット内に占める割合を0-1の範囲で取り出します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	let value = Datamate.rate('一年間の降水量', 0);			// 0番目の値を取得 -> 0.0476(118.5は、データセットの中では0.0476の割合)
}

例)0番目が値が、同じデータセット内に占める割合を、0-100の範囲にマッピングして取り出します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	let value = Datamate.rate('一年間の降水量', 0, 0, 100);	// 0番目の値を取得 -> 4.76(0.0476を、0-100の値に変換)
}

例)0番目の値が、他のデータセット内の指定位置の値に占める割合を、0-100の範囲にマッピングして取り出します。

function setup()
{
	Datamate.setValues("Naha", [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]);
	Datamate.setValues("Sapporo", [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	let value1 = Datamate.rate('Naha', 0, 0, 100, Datamate.ROW);		// Nahaの0番目の値を取得 -> 56.6 (Naha:Sapporo = 118.5:90.5 = 56.6:43.3)
	let value2 = Datamate.rate('Sapporo', 0, 0, 100, Datamate.ROW);		// Sapporoの0番目の値を取得 -> 43.3 (Naha:Sapporo = 118.5:90.5 = 56.6:43.3)
}

データを再生する

書式)指定したフレームレートの時間間隔で、データ位置を遷移させることを開始します(Datamate.current()と併用します)。

Datamate.play(フレームレート);

例)指定したフレームレートの時間間隔で、データ位置を遷移させることを開始します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.play(1.0);			// フレームレート1.0で再生(1秒ごとにデータ位置が1つ進む)
}

データを取り出す(再生中の値)

書式)現在のデータ位置の値を取り出します。

Datamate.current('データ名');

書式)現在のデータ位置の値を取り出します。次のデータ位置の値との間を補間して取り出すか設定します。

Datamate.current('データ名', 補間設定);

書式)現在のデータ位置の値を取り出します。次のデータ位置の値との間を補間して取り出すか設定します。値を最小値ー最大値の範囲にマッピングします。

Datamate.current('データ名', 補間設定, 最小値, 最大値);

例)現在のデータ位置の値を取り出します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.play(1.0);			// フレームレート1.0で再生(1秒ごとに取得する番号が1つ進む)
}

function draw()
{
	let value = Datamate.current('一年間の降水量');
}

例)現在のデータ位置の値を取り出します。次のデータ位置の値との間を補間します。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.play(1.0);			// フレームレート1.0で再生(1秒ごとに番号が1つ進む)
}

function draw()
{
	let value = Datamate.current('一年間の降水量', true);
}

例)現在のデータ位置の値を取り出します。次のデータ位置の値との間を補間します。値は10-100の間にマッピングされます。

function setup()
{
	Datamate.make('一年間の降水量', [118.5,194.5,69.5,92.0,163.5,893.5,337.5,109.5,241.0,107.5,92.5,66.0]); // データの作成
	Datamate.play(1.0);			// フレームレート1.0で再生(1秒ごとに番号が1つ進む)
}

function draw()
{
	let value = Datamate.current('一年間の降水量', true, 10, 100);
}

表示エリアを作成する

書式)指定した矩形内に、指定した数のエリアを作成します。

Datamate.makeArea(x座標, y座標, 横幅, 高さ, 列の分割数, 行の分割数);

例)4つのデータセットのために、キャンバスの範囲で2x2のエリアを作成します。

function setup()
{
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);

	makeArea(0, 0, width, height, 2, 2);
}

表示エリアを紐づける

書式)指定したエリアとデータセットを紐づけます。

Datamate.bindArea('データ名', 列位置, 行位置);

例)4つのデータセットのために、キャンバスの範囲で2x2のエリアを作成し、それぞれのエリアを紐づけます。

function setup()
{
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);

	makeArea(0, 0, width, height, 2, 2);	// 2x2のエリアを作成
	bindArea('札幌の降水量', 0, 0);			// 0,0のエリアと紐づけ
	bindArea('東京の降水量', 0, 1);			// 0,1のエリアと紐づけ
	bindArea('名古屋の降水量', 1, 0);			// 1,0のエリアと紐づけ
	bindArea('京都の降水量', 1, 1);			// 1,1のエリアと紐づけ
}

表示エリアを一括で紐づける

書式)指定したエリアとデータセットを一括で紐づけます。

Datamate.bindAreas([データセット番号, データセット番号,..]);

例)4つのデータセットのために、キャンバスの範囲で2x2のエリアを作成し、それぞれのエリアを一括で紐づけます。

function setup()
{
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);

	makeArea(0, 0, width, height, 2, 2);	// 2x2のエリアを作成
	bindAreas([0,1,2,3]);					// データセット0-3を各エリアに一括で紐づける
}

表示エリアを取り出す

書式)データセットと紐づけたエリア情報を取得します。

Datamate.area('データ名'(またはデータセット番号));

例)4つのデータセットのために、キャンバスの範囲で2x2のエリアを作成し、それぞれのエリアを一括で紐づます。描画時に'札幌の降水量'のエリアを取得します。

function setup()
{
	Datamate.make('札幌の降水量', [90.5,78.5,79.5,112.0,76.5,50.5,7.5,108.5,73.0,150.5,153.5,108.5]);
	Datamate.make('東京の降水量', [43.5,88.5,173.0,156.0,99.5,168.5,310.0,382.5,222.5,199.5,93.0,116.0]);
	Datamate.make('名古屋の降水量', [56.5,46.5,203.5,192.0,254.0,137.0,312.5,347.0,224.0,65.0,71.5,89.0]);
	Datamate.make('京都の降水量', [55.5,54.0,143.0,202.0,228.5,128.0,390.0,468.5,179.5,41.0,67.5,76.5]);

	makeArea(0, 0, width, height, 2, 2);	// 2x2のエリアを作成
	bindAreas([0,1,2,3]);					// データセット0-3を各エリアに一括で紐づける
}

function draw()
{
	const area = Datamate.area('札幌の降水量');			// '札幌の降水量'のエリアを取得
	rect(area.left, area.top, area.width, area.height);	// エリアの各値から、矩形を描画
}