修改Cubism.js石墨标题文本

时间:2014-02-02 19:10:18

标签: javascript d3.js cubism.js

使用cubism.js我正在抓取石墨数据并在页面上创建多个图表。看起来很神奇,但我无法弄清楚如何修改每个图表的默认标题/文字。 JS经验非常有限。

这可能是cubusm.js,d3.js或一般的javascript问题,我不确定。由于石墨在有时深层文件夹结构中嵌套数据,我希望能够简化字符串的默认设置。我要修改的文本示例('servers.apt1.loadavg.05','servers.apt2.loadavg.05'等):http://i.imgur.com/4FqwhjA.png

如何修改每个图表的Graphite数据的标题/文字?获取“servers.apt1.loadavg.05,想要”apt1“显示。

var context = cubism.context()
    .step( 1 * 30 * 1000 )
    .size(960); 

var graphite = context.graphite("http://graphite.example.com");
graphFind = 'servers.*.loadavg.05'

graphite.find(graphFind, function(error, results) {
  // Map find results to array and set to graphite.metric object type
  var metrics = results.sort().map(function(i) {
    return graphite.metric(i);
  });

  // loop through array and print stuff to "graphs" div
  for (var i=0;i<metrics.length;i++){
    d3.select("#graphs").call(function(div) {
      div.append("div")
        .selectAll(".horizon")
        .data([metrics[i]])
        .enter()
        .append("div")
        .attr("class", "horizon")
        .call(context.horizon());
    });
  }
});

1 个答案:

答案 0 :(得分:0)

根据documentation,您可以使用horizon.title()功能执行此操作。所以在你的情况下,它会像

.call(context.horizon().title("your title here"));

您也可以将其指定为函数,例如

.call(context.horizon().title(function(d) { return d.title; }));