【发布时间】:2014-11-26 18:13:44
【问题描述】:
有没有办法改变c3条形图中数据上方的标签位置?
在官方文档中很好地解释了如何通过操纵 y 和 x 整数来更改 x 和 y 测量轴上的标签位置,但我没有找到任何数据标签。
我试图用简单的d3 指向它,c3 是基于它,但console.log 返回 null:
d3.selectAll(".c3-texts .c3-text").each(function () {
var yOrigin = d3.select(this).attr('y');
console.log(yOrigin);
})
因为它在图形生成之前触发。您可以在此处查看和编辑我正在处理的内容:
var chart = c3.generate({
data: {
columns: [
['de', 30],
['da', 20],
['db', 50],
],
groups: [
['de', 'da', 'db']
],
type: 'bar',
labels: {
format: {
y: function(v, id) {
return id;
},
}
}
},
grid: {
y: {
lines: [{
value: 0
}]
}
}
});
d3.selectAll(".c3-texts .c3-text").each(function() {
var yOrigin = d3.select(this).attr('y');
console.log('yOrigin:' + yOrigin);
//d3.select(this).attr('y',100);
})
<script src="http://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/c3/0.3.0/c3.min.js"></script>
<link href="http://cdnjs.cloudflare.com/ajax/libs/c3/0.3.0/c3.css" rel="stylesheet" />
<div id="chart">
</div>
【问题讨论】:
-
可以使用
setTimeout延时运行代码:jsfiddle.net/e60o24d0/2 -
是的,我最终设法使用 setTimeout 解决方法,无论如何谢谢
标签: javascript jquery d3.js c3.js