D3.js d3 v4-单个水平条形图左侧有值
下面是当前形式的水平条形图的代码。我想将该值移到条形图的左侧。我尝试了D3.js d3 v4-单个水平条形图左侧有值,d3.js,D3.js,下面是当前形式的水平条形图的代码。我想将该值移到条形图的左侧。我尝试了.attr(“文本锚”,“开始”),但没有成功。非常感谢您提供的任何帮助,希望您能提供一些注释,帮助解释格式化标签/值的一些原则。谢谢 var data = [{ "xAxis": "72.1" }]; var margin = { top: 20, right: 20, bottom: 30, left: 80 }, width = 50
.attr(“文本锚”,“开始”)
,但没有成功。非常感谢您提供的任何帮助,希望您能提供一些注释,帮助解释格式化标签/值的一些原则。谢谢
var data = [{
"xAxis": "72.1"
}];
var margin = {
top: 20,
right: 20,
bottom: 30,
left: 80
},
width = 500 - margin.left - margin.right,
height = 200 - margin.top - margin.bottom;
var y = d3.scaleBand()
.range([height, 0])
.padding(0.4);
var x = d3.scaleLinear()
.range([0, width])
.domain([0, 100]);
var svg = d3.select(".barChartContainer").append("svg")
.attr("width", 500)
.attr("height", 200)
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")");
y.domain(data.map(function(d) {
return d.yAxis;
}));
var backgroundBar = svg.selectAll(null)
.data(data)
.enter()
.append("rect")
.attr("class", "barBackground")
.attr("y", function(d) {
return y(d.yAxis);
})
.attr("height", y.bandwidth())
.attr("width", function(d) {
return x(100);
});
var bar = svg.selectAll(null)
.data(data)
.enter()
.append("rect")
.attr("class", "bar")
.attr("y", function(d) {
return y(d.yAxis);
})
.attr("width", function(d) {
return x(d.xAxis);
});
var labels = svg.selectAll(null)
.data(data)
.enter()
.append("text")
var values = svg.selectAll(null)
.data(data)
.enter()
.append("text")
.attr("y", function(d) {
return y(d.yAxis) + y.bandwidth() / 2;
})
.attr("x", 10)
.text(function(d) {
return +d.xAxis
})
.attr("x", function(d) {
return x(d.xAxis) + 10;
});
当前条形图
我想要什么
更改最后一行:
.attr("x", function(d) {
return x(d.xAxis) + 10;
});
并替换为:
.attr("x", x(-10));
我写了这段代码,回答了你的最后一个问题。只需更改文本的
x
属性即可。这一行将文本移动到条的右边距:.attr(“x”,函数(d){return x(d.xAxis)+10;})代码>。将该值更改为您想要的值(例如,-10
)。@GerardoFurtado您想输入一个答案(如下所示),以便我给您评分吗?关于定制这种条形图格式,我还有很多问题要问。不,谢谢。请随意接受你自己的答案。提示:由于任何文本的值都是相同的,因此不需要该函数。只需执行.attr(“x”,x(-10))
。