Javascript 添加c3.js填充而不切断图形
这是对以下问题的回应,提供的答案解决了这个问题,但也提出了另一个问题——图表上的按钮在最后被切断-- 我如何才能做到没有填充和按钮不被切断,例如,它应该看起来像:Javascript 添加c3.js填充而不切断图形,javascript,d3.js,c3.js,Javascript,D3.js,C3.js,这是对以下问题的回应,提供的答案解决了这个问题,但也提出了另一个问题——图表上的按钮在最后被切断-- 我如何才能做到没有填充和按钮不被切断,例如,它应该看起来像: 由于在图表层上设置了剪辑路径,这些点被剪辑掉了。你只需要移除它。你可以用D3来做这个,就像这样 d3.select(chart.element).select("." + c3.chart.internal.fn.CLASS.chart).attr("clip-path", null); 其中,chart是C3图表对象 小提琴-
由于在图表层上设置了
剪辑路径,这些点被剪辑掉了。你只需要移除它。你可以用D3来做这个,就像这样
d3.select(chart.element).select("." + c3.chart.internal.fn.CLASS.chart).attr("clip-path", null);
其中,chart
是C3图表对象
小提琴-
但是,您很可能希望点显示在轴层上方。为此,您需要分离并附加图表层(在SVG中,z索引由顺序决定-最后一个同级位于顶部。因此您基本上必须将其移动到同级列表的末尾),如下所示
小提琴-
填充可以非常小,如(0.1)将正确显示数据点。但是,如果您希望在没有填充的情况下继续,则会引发另一个问题。如果要在数据点顶部显示该值,则在首选视图中效果不佳。
var chartLayer = d3.select(chart.element).select("." + c3.chart.internal.fn.CLASS.chart);
var chartLayerParentNode = chartLayer.node().parentNode;
var chartLayerNode = chartLayer.remove();
chartLayerParentNode.appendChild(chartLayerNode.node());
chartLayer.attr("clip-path", null);