2

在立体派示例中,将 context.horizo​​n() 的 height 参数更改为较小的值会导致图形过度绘制自身。增加值的情况正好相反 - 过度绘制的情况较少。

但是,当我更改高度参数时,我的图表保留了相同级别的过度绘图,并且它们只是相应地向上和向下缩放。当我减小高度时,这些图表实际上会失去分辨率。

我该如何解决?

这是我的代码:

var context = cubism.context().step(1000000).size(1000);

var graphite = context.graphite("http://graphite.example.com");
var horizon = context.horizon().metric(graphite.metric).height(200);

var metrics = [
    "summarize(example0,'10s')",
    "summarize(example1,'10s')",
    "summarize(example2),'10s')",
    "summarize(example3),'10s')"
]   

d3.select("#supergraph").append("div")
    .attr("class", "axis")
    .call(context.axis().ticks(4).orient("top"));

d3.select("#supergraph").append("div")
    .attr("class", "rule")
    .call(context.rule());

d3.select("#supergraph").selectAll(".horizon")
    .data(metrics)
.enter().append("div")
    .attr("class", "horizon")
    .call(horizon);

4

1 回答 1

1

Cubism 将始终绘制与您为其设置的颜色数量相等的波段数,除非您明确设置范围,否则它将始终将最高波段顶部的最大值设置为数据的最大值。这意味着您有两个选项可以在更改大小时保持相同的分辨率:

1)您可以horizon.extent([min, max])在缩放高度时显式设置范围并缩放最小值和最大值。换句话说,如果您将图表的高度加倍,那么您的范围内的最小值和最大值也会加倍。

2)你可以改变你给它的颜色数量,这将改变它创建的波段数量。换句话说,如果你把图表的高度加倍,给它一个新的颜色数组,颜色数量的一半。

于 2013-01-07T17:15:05.303 回答