javascript - d3 js 双向水平条形图

标签 javascript jquery d3.js

我正在尝试使用 d3 绘制水平双向条形图。我从 fiddle 中得到了一个样本。我已经根据需要更新了它。但我最终遇到了一些问题。

请在这里找到 fiddle :https://jsfiddle.net/binuabraham/9c3rsrk6/1/

我的图表中始终需要 6 - 30 之间的刻度。但是,当我更改值时,x 轴会中断:

var xAxis = d3.svg.axis()
    .scale(x)
    .tickValues(d3.range(6, 31, 2));

刻度之间的差距也会随着值的变化而变化。有人可以帮我吗?

最佳答案

问题是您首先将 x 域设置为

var x = d3.scale.linear()
        .domain([6, 30])

从 6 到 30

然后你根据数据像这样设置域

x.domain(d3.extent(data, function (d) {
                return d.value;
            })).nice();

所以修复方法是执行一次上述操作之一。

并删除刻度值 .tickValues(d3.range(6, 31, 2)); 您不能将刻度值设置为 31,因为您的数据最多为 26。

工作代码here

编辑

如果您始终希望域为 6 到 30,则添加:

var x = d3.scale.linear()
            .domain([6, 30])

并删除下面这一行:

x.domain(d3.extent(data, function (d) {
                return d.value;
            })).nice();

工作代码here

关于javascript - d3 js 双向水平条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47493741/

相关文章:

javascript - HTML 音频 - 负 playbackRate 值不起作用?

javascript - 文本节点不能作为 <table> 的子节点出现 [ReactJS];警告 : Each child in a list should have a unique "key" prop

javascript - 链接在 jQuery 中失去作用

javascript - 使用 jquery 或 CSS3 的球滚动动画

javascript - 在图表中显示低于或高于阈值的区域在 D3 中不起作用

javascript - React - 使用 Javascript 的组件

jquery - 是否有一个 JQuery 表达式将针对没有规定类的 div

javascript - 如何在我的 d3js 示例中添加 if 条件

javascript - 更改页面 JS/D3 上的元素位置

javascript - Ember.js:如何观察输入字段中的值何时发生变化