javascript - d3.js 中条形图之间的关联距离

标签 javascript d3.js

我现在正在制作一个条形图,它的格式与这里的类似http://bl.ocks.org/kiranml1/6872226 ,“x 轴”位于左侧,“y 轴”位于底部。我在左侧有某些数字作为我的“类别”,例如 3048、3060、3096... 等。每个类别都是一个数字,并且每个类别都有某种差异。

我想知道,如何制作条形图以使每个类别分布不均匀?现在,我有 rangeroundbands ,它使它们均匀分布,但我正在尝试使条形之间的距离与类别之间的数字差异相关。例如,假设 3048、3096、4050,3048 和 3096 之间的距离将小于 3096 和 4050 之间的距离,足够直观,但也不会使条形图变得不可能大。

var yScale = d3.scale.ordinal()
    .domain(d3.extent(molecules_0, function(d) {
        return parseInt(d.molweight);
    }))
    .rangeRoundBands([padding, height - padding]);

var yAxis = d3.svg.axis()
    .scale(yScale)
    .orient("left")
    .tickSize(2)
    .tickFormat(function(d, i) {
        return molecules_0[i].molweight;
    })
    .tickValues(d3.range(20));

最佳答案

您必须修改 Y 轴。目前它仅使用 categories 数组的长度:

var yscale = d3.scale.linear()
    .domain([0,categories.length])
    .range([0,480]);

您真正需要做的就是更改域的输入:

    .domain(d3.extent(categories))

这样您的 Y 位置也将基于类别值。

关于javascript - d3.js 中条形图之间的关联距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36186071/

相关文章:

javascript - 如何向 svg 图形添加工具提示?

d3.js - 如何在 d3 中调整散点图矩阵上的刷亮?

d3.js - D3中力图节点内的圆形包装?

javascript - 使用来自 Facebook 的 JavaScript 方法

javascript - 向 jQuery 中的单个元素添加 css 样式

Javascript 小数归约产生不正确的结果

javascript - 增加 D3 路径链接的伪区域以更轻松地触发 D3-Tip 事件

javascript - Protractor - 当元素不可见且不执行 "else"条件时测试失败

javascript - 如何记录错误,就像未捕获错误一样?

javascript - d3.js:将月份转换为季度