gpt4 book ai didi

label - 标题和 Axis 标签

转载 作者:行者123 更新时间:2023-12-04 22:22:16 25 4
gpt4 key购买 nike

我已经成功地为 X 和 Y Axis 创建了标签。我也成功地为图表添加了标题。我的问题是,如果我修改图表的边距,标签位置就会困惑。

更改图表边距的片段:

    var margin = {top: 60, right: 60, bottom: 60, left:120}  

我创建标签的地方的片段:
    //Create Title 
svg.append("text")
.attr("x", w / 2 )
.attr("y", 0)
.style("text-anchor", "middle")
.text("Title of Diagram");

//Create X axis label
svg.append("text")
.attr("x", w / 2 )
.attr("y", h + margin.bottom)
.style("text-anchor", "middle")
.text("State");

//Create Y axis label
svg.append("text")
.attr("transform", "rotate(-90)")
.attr("y", 0-margin.left)
.attr("x",0 - (h / 2))
.attr("dy", "1em")
.style("text-anchor", "middle")
.text("Revenue");

JsFiddle:
http://jsfiddle.net/u63T9/

这是我愿意接受的另一种选择:
我基本上是利用比例来找到一个基本坐标。然后我添加或取一点,直到我对位置感到满意为止。这种方法实际上跟上了边距的变化。
    //Create title 
svg.append("text")
.attr("x", w / 2 )
.attr("y", yScale(d3.max(input, function(d) { return d.CustomerCount; })) - 20 )
.style("text-anchor", "middle")
.text("Title of Graph");

//Create X axis label
svg.append("text")
.attr("x", w / 2 )
.attr("y", yScale(0) + 40 )
.style("text-anchor", "middle")
.text("State");

//Create Y axis label
svg.append("text")
.attr("transform", "rotate(-90)")
.attr("y", xScale(0) - 80 )
.attr("x",0 - (h / 2))
.attr("dy", "1em")
.style("text-anchor", "middle")
.text("Revenue");

最佳答案

我使用一个简单的函数来测量文本,然后根据它计算边距。

// create a dummy element, apply the appropriate classes,
// and then measure the element
function measure(text, classname) {
if(!text || text.length === 0) return {height: 0, width: 0};

var container = d3.select('body').append('svg').attr('class', classname);
container.append('text').attr({x: -1000, y: -1000}).text(text);

var bbox = container.node().getBBox();
container.remove();

return {height: bbox.height, width: bbox.width};
}

现在你可以使用
var titleSize = measure('my title', 'chart title'),
margin.top = titleSize.height + 20; // add whatever padding you want

我在 http://jsfiddle.net/uzddx/2/ 更新了你的例子。当您修改标题的字体大小时,您可以看到顶部边距调整大小。你可以对左边距做类似的事情,这样你的标签就不会离 y Axis 太远。

关于label - 标题和 Axis 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14605348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com