繁体   English   中英

是否在d3水平条形图中添加标签?

[英]Adding labels to a d3 horizontal bar chart?

我对d3相当陌生,我有一个非常简单的条形图,对于每行传递的每个数字,其宽度均为50px。 我正在尝试添加标签,使其位于酒吧本身之前,以便查看者可以理解其代表的含义。

这是我的代码:

      var data2 = [4, 3, 1, 1];
      var fwSkills = ["a", "b", "c", "d"];

      d3.select(".frameworks")
        .selectAll("div")
          .data(data2)
        .enter().append("div")
          .style("width", function(e) { return e * 50 + "px"; })
          .text(function(e) { return e; });

这根本不会添加标签,但是到目前为止我尝试过的所有方法都不起作用(或者至少不能正确显示该栏)。 还有一些CSS可以对栏本身进行样式设置。 我想将标签添加到数组fwSkills中 ,使其位于相应栏的前面。

我在这里可以做什么? 我觉得这是一个简单的JS修复程序。 谢谢!

您可以为每个数据值附加一个div元素。 然后,在每个div元素内,您可以为标签添加div元素,为酒吧添加div元素。 例如...

 var data2 = [4, 3, 1, 1]; var fwSkills = ["a", "b", "c", "d"]; var divs = d3.select(".frameworks") .selectAll("div") .data(data2) .enter() .append("div"); // add labels divs.append("div") .classed("label", true) .style("width", "20px") .text(function (e,i ) { return fwSkills[i]; }); // add bars divs.append("div") .classed("bar", true) .style("width", function(e) { return e * 50 + "px"; }) .text(function(e) { return e; }); 
 .label { display: inline-block; } .bar { display: inline-block; background-color: steelBlue; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script> <div class="frameworks"></div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM