Javascript D3 js范围条形图

Javascript D3 js范围条形图,javascript,d3.js,charts,Javascript,D3.js,Charts,我是D3JS新手。我在找一张像highcharts那样的图表。在highcharts中,它被称为列范围图。有没有办法做到这一点 当我在谷歌上搜索的时候,我能得到的最好的东西就是一个。有谁能帮我把它做成一个范围图吗?你的基本条形图链接不起作用。这看起来就像一个水平条形图,其中有很多例子。这里有一个:假设我有这样的数据集: //these are the various categories var categories = ['', 'Accessories', 'Audiophile'

我是D3JS新手。我在找一张像highcharts那样的图表。在highcharts中,它被称为列范围图。有没有办法做到这一点


当我在谷歌上搜索的时候,我能得到的最好的东西就是一个。有谁能帮我把它做成一个范围图吗?

你的基本条形图链接不起作用。这看起来就像一个水平条形图,其中有很多例子。这里有一个:

假设我有这样的数据集:

//these are the various categories 
    var categories = ['', 'Accessories', 'Audiophile', 'Camera & Photo', 'Cell Phones', 'Computers', 'eBook Readers', 'Gadgets', 'GPS & Navigation', 'Home Audio', 'Office Electronics', 'Portable Audio', 'Portable Video', 'Security & Surveillance', 'Service', 'Television & Video', 'Car & Vehicle'];
//these are the various categories cost
 var dollars = [[100,213], [75,209], [50,190], [100,179], [140,156], [138, 209], [90, 190], [65,179], [100, 213], [100, 209], [50, 190], [76,179], [45,156], [80,209], [75,190], [55,190]];
在数据集中,
Car&Vehicle
的成本范围从
55美元到190美元
。这里的
电视和视频
成本范围从
75美元到190美元
取决于质量

让我们做x刻度

var xscale = d3.scale.linear()
  .domain([10, 250])//minimum cast can be 10$ and maximum cost 250$
  .range([0, 722]);
让我们制作矩形条

var chart = canvas.append('g')
      .attr("transform", "translate(150,0)")
      .attr('id', 'bars')
      .selectAll('rect')
      .data(dollars)
      .enter()
      .append('rect')
      .attr('height', 19)
      .attr({
        'x': function(d) {
          return xscale(d[0]);//this defines the start position of the bar
        },
        'y': function(d, i) {
          return yscale(i) + 19;
        }
      })
      .style('fill', function(d, i) {
        return colorScale(i);
      })
      .attr('width', function(d) {
        return 0;
      });
现在,对于过渡,钢筋的宽度将为:

var transit = d3.select("svg").selectAll("rect")
  .data(dollars)
  .transition()
  .duration(1000)
  .attr("width", function(d) {
    return xscale(d[1]) - xscale(d[0]);//width of the bar will be upper range - lower range.
  });

完整的工作代码。

结果看起来与我尝试获取的结果几乎相同,但需要一个分组条。你能用这种方式更新你的例子吗。我的数据与您使用的数据大不相同,我能做到。啊,但你问的问题并没有提到分组条形图。即使你举的highchart示例也是一个简单的范围条形图:)我们能做到吗?你能指出你的代码的哪个部分将条形图推到plunk中120号图形线的中间,并在上面粘贴的代码中更新注释吗。