【问题标题】:Donut Pie Chart - Add a Title - NVd3.js甜甜圈饼图 - 添加标题 - NVd3.js
【发布时间】:2013-04-25 18:27:28
【问题描述】:

我正在探索 NVD3.js 库。令我惊讶的是,它可以如此快速地生产出东西。

但有时似乎很难更改图表。在这种情况下,我想为我的图表添加一个标题。

另外,我想在工具提示中添加其他数据。所以在悬停时,它也会在我的数据中包含注释。

数据样本:

var data = [
{
  key: "Loans",
  y: 52.24
  note: "Expect greatest value"
}];

这是我正在玩的代码:

nv.addGraph(function() {

var width = 500,
    height = 500;

var chart = nv.models.pieChart()
    .x(function(d) { return d.key; })
    .values(function(d) { return d; })
    .color(d3.scale.category10().range())
    .width(width)
    .height(height)
    .donut(true);

chart.pie
    .startAngle(function(d) { return d.startAngle/2 -Math.PI/2; })
    .endAngle(function(d) { return d.endAngle/2 -Math.PI/2 ;});


  d3.select("#chart")
      //.datum(historicalBarChart)
      .datum([data])
    .transition().duration(1200)
      .attr('width', width)
      .attr('height', height)
      .call(chart);

return chart;
});


更新:工具提示的原始代码位于src->models->pieChart.js:

tooltip = function(key, y, e, graph) {
    return '<h3>' + key + '</h3>' +
           '<p> Confidence: ' +  y + '%</p>'
  }

我尝试用我自己的函数覆盖它。但要么得到错误,要么没有变化。

标题更新:我通常对标题使用以下代码(或类似代码)。

svg.append("text")
    .attr("x", (width / 2))
    .attr("y", 0 - (margin.top / 2))
    .attr("text-anchor", "middle")
    .style("font-size", "16px")
    .style("text-decoration", "underline")
    .text("Awesome Title");

当然,这在 NVD3 中无效。我不知道用什么函数来指定标题。

【问题讨论】:

    标签: javascript d3.js pie-chart nvd3.js


    【解决方案1】:

    我认为您正在寻找图表。tooltipContent() JSFiddle:http://jsbin.com/idosop/7/edit

          var tp = function(key, y, e, graph) {
                console.log(key, e, y);
                return '<h3>' + key + '</h3>' +
                       '<p>!!' +  y + '!!</p>' +
                  '<p>Likes: ' +  e.point.likes + '</p>';
          };
          chart.tooltipContent(tp);
    

    【讨论】:

    • 非常好。这样就解决了!但是e.point.likes 的point 部分有什么作用呢?
    • 当您的数据集中有更多信息(即除了 y 值)时,就像我们在这里所做的那样:data = [{ key: "Loans", y: 52.24 note: "Expect maximum value" }, key: "Accounts", y: 300.24 note: "Meh" }, ... ] 数据数组中的每个项目都作为 e.points 传递给工具提示回调,您可以获得其余的相关数据与那个对象的那个点。
    • 有道理。您是否有指向 Docs 的链接来解释这一点? (好吧,如果你不这样做)。总的来说,我还没有找到很好的文档来源。
    • 您对如何处理标题有任何建议/想法吗?我用于其他图表标题的标准 D3.js 代码不适用于 NVD3。
    • 这个库上的文档有点薄,我是通过阅读源代码找到的。你为这个标题做了什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    相关资源
    最近更新 更多