作っていただけたら1000ポイント差し上げます。
任意の縦、横をピクセル数で指定します。
指定した大きさの長方形が作図され、中心を「0」としたx,y軸を持つ座標平面となります。
次に、座標とその座標を中心として作図される正円の半径が、ランダムに生成され、以下のような形式で書き出されてゆきます。
(x1,y1)r1
(x2,y2)r2
(x3,y3)r3
…以下あらかじめ指定した個数まで。
()内、x1、x2…,y1、y2…が生成された座標で、ランダムな整数(ピクセル単位)ですが、いくつかの条件に基づいて生成されます。
(条件については添付画像をご参照ください。)
()の右、r1、r2…はその座標を中心として作図される正円の半径で、ランダムな整数(ピクセル単位)ですが、「最小半径」と「最大半径」を、それぞれあらかじめ指定することができ、その範囲内でランダムな値をとります。
一方、座標平面上には実際に、上記座標が点で表示され、それを中心とした正円が作図されてゆきます。
(完成イメージについては添付画像をご参照ください。)
よろしくお願いいたします。
完成度の低い回答なので、点数の配分は質問主さんにお任せします。
統計ソフト「R」を使う方法が考えられます。
http://o-server.main.jp/r/use.html
http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html
Rは、コマンドラインで動作し、統計計算やその結果のグラフ出力などを主な機能とするフリーソフトです。
まず、Rでのバブルチャートの作成ですが、このレベルの事ができます(すみません、英語です)。ご要望に合う作画はできそうです。
http://flowingdata.com/2010/11/23/how-to-make-bubble-charts/
このページを見ると、バブルチャートを描画するコマンドは、次のようになります。
>symbols(data$x, data$y, circles=data$r)
data: 参照する元データの名前
x: 上記元データ中で、x軸に割り当てる項目の名前
y: 〃、y軸に割り当てる項目の名前
で、上記元データ(data)を作成する方法です。乱数に基づいて有限個のデータを作成するんですよね?Rには乱数発生関数が備えられています。
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/60.html
乱数の分布には色々あるようですが、今回の目的からすると一様分布(unif)が適当なようです。例えば、
>runif(5)
と入力すれば、一様分布に基づく乱数を5個生成してくれるようです。最大値、最小値もオプションの指定で出来ます。これを、バブルのx、y、rについてそれぞれ発生させ、上記dataというデータ・フレームを作成すれば、目的を達するのではないでしょうか?
以上、完全なガイドにはなっていませんが、方向性としては合っているでしょうか?
ご回答ありがとうございます。
方向性というか出来上がりのイメージは似てますね。
ただ、このソフトでは今回質問に添付させていただきました画像にある(3)、(4)、(5)、が難しいのでは?と思いました。
私が英語が不得意なこともあって、ちゃんと理解できていないのかもしれませんが。
書き忘れていましたが、点はランダムに生成して、条件に当てはまらなければ再試行しています。
で、再試行回数が1万(18行目の数字)を超えると規定数の点を生成してなくても停止します。
現状、400*300=12万ピクセルなので12ピクセル/試行で、そのレベルの空間があればは見逃しているかも知れません。
こだわるなら試行回数をもう1桁か2桁上げる方が良いのかも知れません。
細かいわがまま聞いていただきましてありがとうございます!
また、再試行回数の件、とても参考になりました。
ポイントお送りいたします。
書き忘れていましたが、点はランダムに生成して、条件に当てはまらなければ再試行しています。
2012/04/27 22:41:27で、再試行回数が1万(18行目の数字)を超えると規定数の点を生成してなくても停止します。
現状、400*300=12万ピクセルなので12ピクセル/試行で、そのレベルの空間があればは見逃しているかも知れません。
こだわるなら試行回数をもう1桁か2桁上げる方が良いのかも知れません。
細かいわがまま聞いていただきましてありがとうございます!
2012/04/28 19:17:53また、再試行回数の件、とても参考になりました。
ポイントお送りいたします。