私は、d3 および cubism API ページで見つかったコードから、必要なものを操作するように変更するまで、かなりの時間を費やしています...
https://github.com/square/cubism/wiki/Horizonにリストされている Horizon グラフの手順に従おうとしています が、Cube または Graphite データ ソースがありません。
だから私はここでmbostockの答えから最小限のサンプルメトリックを作ろうとしています cubism.jsの 他のデータソースの使用 および/またはランダム値を返すメトリックの例はこちら https://github.com/square/cubism/wiki/Context
context.metric() のパラメータを説明している Context API ページで、「...結果が利用可能になったときのコールバック関数」の部分が理解できないと思います。サーバーに次のものがあり、ブラウザーで表示/更新すると、ブラウザーのコンソールに「TypeError: callback is not a function」が表示されます。
<body>
<div class="mag"></div>
<script type="text/javascript">
var myContext = cubism.context();
var myHoriz = myContext.horizon()
.metric(function(start, stop, step, callback) {
var values = [];
start = +start;
stop = +stop;
while (start < stop) {
start += step;
values.push(Math.random());
}
callback(null, values);
});
d3.select(".mag").selectAll("p")
.data([1, 2, 3, 7]) // the "times" for which I want to graph the data
.enter().append("p")
.call(myHoriz);
</script>
</body>
ああ(編集)、追加する必要があります、コードは実行されます.4つの段落がdivに追加されたドキュメントを取得し、各段落のテキストコンテンツは数字1、2、3、7です。少なくとも、select()、data()、enter()、および append() ビットが機能しています。