javascript - D3/设计 - 条形图,寻求时髦的方式来指示 "N/A"

标签 javascript d3.js

对此必须有人有一个聪明的主意。 我有一个很棒的条形图,其中包含一些 N/A 值,例如佛蒙特州。因此,佛蒙特州没有受到限制。伟大的!但我想在“佛蒙特州”一词的右侧附加“N/A”,或者以某种方式表明佛蒙特州是一个 N/A。否则,它可能看起来像一个错误,比如“嘿,佛蒙特州的数据在哪里?为什么这里有一个空白点?”

http://bl.ocks.org/greencracker/raw/4f7ff98cea98413ef5f4/

关键 block 是这样的:

  barUpdate.select("rect")   
  .attr("width", function (d) { return x(d[age]);}) //< -- need something here?
  .attr("fill", function (d) {
    if (d.State == "Georgia") {return "goldenrod";} 
    else {return color(age); } ;})
  .attr("fill-opacity", function (d) {
    if (d.State == "United States") {return 0.6;} ;});

我会想这样的事情......?

.attr("width", function (d) { if (x(d[age])) == 0) {this.append("umm? something here?");}
{x(d[age]);} 

我知道我无法将“文本”附加到“矩形”。我摆弄了 this.append("g").append("text") 但没有运气。

最佳答案

我不确定是否会使用 N/A,因为它可能不明确。是指不适用还是不可用。当然,它们是细微的差异,但可能值得选择不同的短语来表示缺乏数据。

也就是说...您可以轻松地为您拥有的每个数据项添加一个新的文本元素,并将其设置为“”(对于有数据的州)和“N/A”(对于没有数据的州) 't。

我已经 fork 了你的要点并提出了这个:http://bl.ocks.org/benlyall/361716dbd79f13488a4e

我添加的额外代码是:

barEnter.append("text")
        .attr("class", "value-label")
        .attr("x", -3)
        .attr("y", y.rangeBand() / 2)
        .attr("dy", ".35em")
        .attr("text-anchor", "start");

...

barUpdate.select("text.value-label")
         .attr("x", function(d) {
             return x(d[age]);
         })
         .text(function(d) {
             if (d[age] == "") {
                 return "N/A";
             } else {
                 return "";
             }
         });

显然,您最终会在 SVG 中得到额外的文本元素,这由您决定这对您是否重要。

关于javascript - D3/设计 - 条形图,寻求时髦的方式来指示 "N/A",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25925162/

相关文章:

javascript - 如何根据子元素的文本值隐藏父元素

javascript - ReactJS 嵌套列表 (flux)

javascript - d3 更新图形中的路径和圆圈

javascript - D3 js 从数据属性设置数据

javascript - d3 .tsv 文件不起作用

javascript - 服务工作人员错误 DOMException : Only secure origins are allowed

javascript - 在 jQuery/AJAX 中获取函数的responseText

javascript - this._initializeRegions 不是一个函数?

javascript - 将数组转换为 json

javascript - 有没有检查js变量是否是d3选择的?