【问题标题】:NVD3 tooltip only shows categoryNVD3 工具提示仅显示类别
【发布时间】:2013-09-27 18:39:20
【问题描述】:

我正在使用堆积条形图。如何使工具提示仅显示数据的类别,而不是确切的值,或者作为替代方法,是否可以显示类别而不是条形末尾的值(就像您设置 .showValue(true),但使用类别)。

更新

我找到了在工具提示中只显示类别(键)的解决方案,但它涉及到源代码的修改,看起来不太好。 我认为我想要做的正确名称是显示每个栏的标签。我无法使用此代码:

chart.xAxis.
          .axisLabel(attrs.xAxisLabel)
          .tickFormat(d3.format('r'));

因为它给了我一个attrs 未定义的错误。我有这个想法from here。但我不能让它工作。

更新

更具体一点:

我想在垂直轴上显示round_1_2,而不仅仅是在我悬停时。

【问题讨论】:

  • NVD3 在处理此类问题时不是很灵活——修改源代码可能是最好的方法。
  • 但是没有办法显示x轴标签?
  • 不确定您要做什么。它不是已经显示轴标签了吗?
  • 是的,它不显示轴标签(垂直轴),我找不到我启用的方法

标签: d3.js nvd3.js


【解决方案1】:

更新:工作小提琴:http://jsfiddle.net/reblace/D2Dak/4/

NVD3 代码生成错误仍然存​​在一些问题......他们的网站示例也有问题......但是,现在我在这里提到的东西是可证明的。

要在不修改其代码的情况下自定义工具提示,请在您的代码中尝试:

chart.tooltip(function(key, x, y, e, graph) {
    return '<h3>' + key + '</h3>' +
           '<p>' +  y + ' on ' + x + '</p>';
});

它们通过 multibarchart 函数上的函数公开工具提示,因此您可以修改用于呈现工具提示的 HTML 模板。

还有

chart.reduceXTicks(false);      // Will show labels on all bars
chart.rotateLabels(angle);      // Rotate the labels to "angle" degrees
chart.xAxis.staggerLabels(true) // Staggers the X Axis labels vertically so they don't run into eachother

如果您查看他们的源代码,您会发现公开所有内容以供修改的部分:

//============================================================
// Expose Public Variables
//------------------------------------------------------------

// expose chart's sub-components
chart.dispatch = dispatch;
chart.multibar = multibar;
chart.legend = legend;
chart.xAxis = xAxis;
chart.yAxis = yAxis;
...
chart.reduceXTicks= function(_) {
  if (!arguments.length) return reduceXTicks;
  reduceXTicks = _;
  return chart;
};

chart.rotateLabels = function(_) {
  if (!arguments.length) return rotateLabels;
  rotateLabels = _;
  return chart;
}

chart.tooltip = function(_) {
  if (!arguments.length) return tooltip;
  tooltip = _;
  return chart;
};

Mike Bostock 在 NVD3 遵循的“走向可重用图表”中描述了一种设计模式,因此熟悉它可能会有所帮助。 http://bost.ocks.org/mike/chart/

【讨论】:

  • 您的工具提示解决方案效果很好。虽然我认为我们有不同版本的 nvd3,因为我找不到 reduceXTicks 方法。
  • 我参考的是他们网站上最新的。现在他们网站上的那个有问题,但我让它在一个项目上工作,其中包含几周前我下载的 NVD3 副本。查看小提琴以获取工作示例。我不确定他们何时添加了这些选项,大约一年前我使用的是 NVD3,它不支持这些东西。但是,好消息是我能够非常无缝地升级版本。
猜你喜欢
  • 2014-09-08
  • 2018-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
相关资源
最近更新 更多