我正在使用attr修改条形大小和位置。 但是,图表属性仅在图表呈现后才可用。
所以我正在对功能进行修改 chart.on(“renderlet.somename”,function(chart){// modification});
我的问题是看起来很奇怪,因为首先渲染图表然后应用修改并且它们都显示在页面上。
我希望图表只有在应用修改后才能显示。
答案 0 :(得分:0)
我开始写道你可以使用pretransition
event,因为在转换开始之前,所有内容都被渲染/重绘后会触发。
但你是正确的,条形宽度不可公开访问(应该是!),并且在它们转换之前你无法从条形图中读取它。
因此,正如您所建议的那样,您可以使用CSS隐藏整个图表:
<div id="test" style="visibility: hidden"></div>
然后在您的renderlet开头显示它:
chart.on('renderlet', function(chart) {
d3.select('div#test').style('visibility', 'visible');
要消除暂停,您还可以在初始化时禁用此图表的转换;
chart
.transitionDuration(0)
并在您的renderlet中重新启用它们:
chart
.on('renderlet', function(chart) {
d3.select('div#test').style('visibility', 'visible');
chart.transitionDuration(750); // default value
这是一个演示,使用小提示演示误差条(也需要条宽):http://jsfiddle.net/gordonwoodhull/cw86goxy/32/