【问题标题】:Dimple.js Axis LabelsDimple.js 轴标签
【发布时间】:2014-09-10 20:48:39
【问题描述】:

我有一个数据集,其中每一行都有一个 id 和一个 name 属性。 id 属性是唯一键,names 可能重复。我希望名称显示在 Dimple.js 图表的类别轴上。

如果我使用“名称”作为chart.addCategoryAxis 的参数,则会绘制正确的标签,但名称重复的用户会被分组到单个条中。 如果我使用“id”作为参数,条形图是分开的,但标签错误。

有没有一种“Dimple”方式来实现这一点,或者我应该只是:

这个例子(点击切换按钮看看我的意思):http://jsbin.com/bupamo/4/edit?js,output

【问题讨论】:

  • 好问题!我一直在寻找这个。对于我的用例来说,这是一个相当重要的功能,如果它直接得到dimple的支持就更好了。 (但它的好处是可以通过一些自定义代码来实现)

标签: d3.js dimple.js


【解决方案1】:

感谢您提供清晰的解释。这并不是真正的酒窝原生的东西,但是您可以通过使用 id 绘制并在事后替换它们来实现它:

您还需要像这样进行其他一些调整:

// Set the title before drawing
xAxis.title = 'name';
// Draw the axis with id's
chart.draw(0, false);
// Now set the category fields to name so that the tooltips are correct
xAxis.categoryFields = ['name'];
// Select the ID labels and replace the text with names
xAxis.shapes
   .selectAll("text")
       .text(function (d) { 
           var i;
           for (i = 0; i < initialData.length; i += 1) {
               if (initialData[i].id === d) {
                   return initialData[i].name;
               }
           }
       });

http://jsbin.com/lezocu/4/edit?js,output

【讨论】:

  • 约翰,谢谢你的建议!我正在寻找这种东西。显然,这不是一个非常受欢迎的功能,因为我在任何文档、示例甚至用户的博客文章中都没有看到任何提及。但是对我来说,这是一个必不可少的功能。如果dimple直接支持它会很酷,但我当然可以使用一些自定义代码来实现它。再次感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
相关资源
最近更新 更多