0
X軸を下に移動すると、棒グラフ上に表示されず、表示されません。私が見つけることができないいくつかのSVG領域の問題があります。 barchartを少し上にシフトして、X = Axisラベリングに対応できるようにする方法。ここでD3.jsの下部に移動するときにBarchart X軸が非表示になっています
はフィドルのリンクはあなたのコードがいくつ問題があるWorking but X-Axis Label is on the Top
a = 100;
b = 150;
c = 103;
dataset= [a,b,c];
var w = 500;
var h = 250;
var barPadding = 1;
var marginleft = 1;
var margintop =1;
var marginbottom =15;
margin = {top:1, right:10, bottom:1, left:1};
colors = ["#e41a1c", "#377eb8", "#4daf4a"];
h = h ;
var category= ['A', 'B', 'C'];
var x = d3.scale.ordinal()
.domain(category)
.rangeRoundBands([0, w]);
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom")
.ticks(0);;
//Create SVG element
var svg = d3.select("#hello")
.append("svg")
.attr("width", w)
.attr("height", h)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + h + ")")
.call(xAxis);
// GENERATING RECTANGLES AND MAKING BAR CHART
svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", function(d, i) {
return i * (w/dataset.length);
})
.attr("y", function(d) {
return h - (d*1.5) ;
})
.attr("width", w/dataset.length - barPadding)
.attr("height", function(d) {
return (d*2);
})
.attr("fill", function(d,i) {
return colors[i];
// .attr("fill", function(d) {
// return "rgb(0, 0, " + (d * 10) + ")";
});
var x_Axis = svg.append('g')
.attr('class','xnewaxis')
.attr("transform", "translate(0," + (20) + ")")
.call(xAxis)
.selectAll("text")
.style("text-anchor", "start")
.attr("dx", "-2.5em")
.attr("dy", ".5em")
.attr("transform", "rotate(-15)");
h-30をhに置き換えると、軸が見えなくなります。私はそれが棒グラフ上で重なり合うのを望んでいません。 – newcomer
ちょうど 'h'を使って何をしているのか考えてみましょう:SVGの限界の後に*何かをレンダリングするようにします。これはどのように機能するのでしょうか? –
はい、余分な高さを追加するか、svgの高さから減算することもできません。 – newcomer