Javascript 用';零';数据

Javascript 用';零';数据,javascript,d3.js,Javascript,D3.js,我想显示一个d3饼图,即使没有数据也可以看到(类似于这个问题:)-例如,一个饼图显示用户个人资料上被问到的与被回答的问题的总数-当用户刚刚注册时,您仍然希望看到饼图(可能以单一颜色变灰) 我想实现的解决方案是在创建饼图的过程中检查数据是否只有零,数据有两行(一行表示正确的计数,一行表示不正确的计数),如果是这样的话,我会简单地将其中一个数字改为1,以便绘制图表,然后稍后再进行干预,以确保没有文本显示“1正确”之类的内容 所以我的问题是,是否有人能找到一种合理的方法,在饼图创建期间更改以下代码,仅

我想显示一个d3饼图,即使没有数据也可以看到(类似于这个问题:)-例如,一个饼图显示用户个人资料上被问到的与被回答的问题的总数-当用户刚刚注册时,您仍然希望看到饼图(可能以单一颜色变灰)

我想实现的解决方案是在创建饼图的过程中检查数据是否只有零,数据有两行(一行表示正确的计数,一行表示不正确的计数),如果是这样的话,我会简单地将其中一个数字改为1,以便绘制图表,然后稍后再进行干预,以确保没有文本显示“1正确”之类的内容

所以我的问题是,是否有人能找到一种合理的方法,在饼图创建期间更改以下代码,仅当两行都为0时,才将其中一个饼图值从0更改为1

var pie = d3.layout.pie().sort(null).value(function(d) { return d.someCount; });
我已经尝试过许多通过数据循环的解决方案(例如,使用.each()函数)来获得d.someCount的所有值的总和,但迄今为止它们还没有达到预期的效果,因此我怀疑我没有正确地设想问题

--编辑--

根据要求示例-尝试将两个值(Javascript中的顶行)都更改为零,图表就会消失(可以理解,这是基于我链接到的另一篇文章的反馈)


您可以添加一个额外的占位符类别,
“empty”
,其计数是基于其他两个类别动态设置的。你可以给它自己的颜色来区别其他两种。这能实现你的目标吗

var pieChartData = [ { "type": "asked", "theCount": "0" }
                   , { "type": "answered", "theCount": "0" }
                   , { "type": "empty", "theCount": "0"}];

if(pieChartData[0].theCount === "0" &&
  pieChartData[1].theCount === "0"){
  pieChartData[2].theCount = "1"
} else {
  pieChartData[2].theCount = "0"
}

你能添加一个,也许甚至是一个plunk或fiddle吗?嗨,Dan,我已经发布了你要求的示例,作为对我原始问题的编辑谢谢anbnyc-这正是我应该想到的黑客!