Javascript d3.js scaleBand()和#x27;滴答声从合适的地方传来
我正在为条形图的x轴和y轴使用scaleBand()。由于某些原因,条形的高度介于y轴的刻度之间。我将感谢任何帮助。这是我的密码:Javascript d3.js scaleBand()和#x27;滴答声从合适的地方传来,javascript,d3.js,Javascript,D3.js,我正在为条形图的x轴和y轴使用scaleBand()。由于某些原因,条形的高度介于y轴的刻度之间。我将感谢任何帮助。这是我的密码: var margin_ = { top: 20, right: 20, bottom: 30, left: 40 }, width_ = 960 - margin_.left - margin_.right, height_ = 500 - margin_.top - margin_.bottom; var svg_
var margin_ = { top: 20, right: 20, bottom: 30, left: 40 },
width_ = 960 - margin_.left - margin_.right,
height_ = 500 - margin_.top - margin_.bottom;
var svg_ = d3.select("body").append("svg")
.attr("width", width_ + margin_.left + margin_.right)
.attr("height", height_ + margin_.top + margin_.bottom)
.append("g")
.attr("transform",
"translate(" + margin_.left + "," + margin_.top + ")");
var x = d3.scaleBand()
.range([0, width_])
.padding(0.2)
var y = d3.scaleBand()
.range([height_, 0]);
x.domain(satisfactScaleKeyValues);
y.domain(graphYvalues);
svg_.selectAll(".bar")
.data(datas)
.enter().append("rect")
.attr("class", "bar__")
.attr("x", function (d) { return x(d.variable); })
.attr("width", x.bandwidth())
.attr("y", function (d) { return y(d.satisLevel); })
.attr("height", function (d) { return height_ - y(d.satisLevel); });
// add the x Axis
svg_.append("g")
.attr("transform", "translate(0," + height_ + ")")
.call(d3.axisBottom(x));
// add the y Axis
svg_.append("g")
.call(d3.axisLeft(y))
您应该使用d3.scalePoint,它可以更好地将有序域转换为范围上的线性点:
let data=[{variable:1,satisLevel:“Neutral”}]
var margin_uz={顶部:20,右侧:50,底部:30,左侧:75},
宽度=960-边距左-边距右,
高度=500-边距顶部-边距底部;
var svg_u3;d3.select(“body”).append(“svg”)
.attr(“宽度”,宽度+边距+左侧+右侧)
.attr(“高度”,高度+边距+顶部+边距+底部)
var g=svg_u2;.append(“g”)
.attr(“转换”,
“翻译(“+margin\uu0.left+”,“+margin\u0.top+”);
var x=d3.scaleBand()
.范围([0,宽度\])
.填充(0.2)
变量y=d3.scalePoint()
.范围([高度,0])
.填充(0.2)
x、 域([1]);
y、 域([“不满意”、“中立”、“满意”);
g、 选择全部(“.bar”)
.数据(数据)
.enter().append(“rect”)
.attr(“类”、“条”)
.attr(“x”,函数(d){返回x(d.variable);})
.attr(“宽度”,x.带宽())
.attr(“y”,函数(d){返回y(d.satisLevel);})
.attr(“高度”,函数(d){returnheight_u-y(d.satisLevel);});
//添加x轴
g、 附加(“g”)
.attr(“变换”、“平移(0)”+高度“+”)
.call(d3.axisBottom(x));
//添加y轴
g、 附加(“g”)
.call(d3.axisLeft(y))