Javascript C3分组条形图间隙
我有一个关于C3 Javascript库的问题 我有一个条形图,它有组,所以它显示为一个带有多种颜色段的条形图。当我用黑白打印时,我想让它看起来更漂亮,我的同事不想修改配色方案,所以我的下一个想法是在条形图的每个部分之间增加大约2个像素的间距 在过去的五六天里,我搜索了所有C3示例,堆栈溢出,并尝试了一系列D3技巧,我真的被这一个困住了 我尝试过的一些方法是将变换/样式应用于创建图形分段的实际路径元素。到目前为止,我尝试过的样式(如边距或填充)中没有一种得到尊重,我认为这可能只是我所读到的路径元素的性质,我能够得到尊重的翻译和缩放,但在获得我想要的结果时遇到了问题: 使用scale时,所有元素都会挤压在一起,它们不会在页面上保留它们的实际尺寸,因此只会使整个图形变小(而不是缩放)。有了翻译,我想我可以让它和D3一起工作。每个D3都有不同的翻译,但所有这些显然都不起作用,因为它们都在移动。我只是在寻找一个优雅的解决方案,但如果没有更好的方法,我愿意为这个解决方案付出时间。到目前为止,我还没有找到D3或C3的解决方案 我不太关心数据表示的轻微失真(即,将每个元素缩小2个像素,与其他元素的大小无关,因为它实际上只是一个相对/近似的可视化Javascript C3分组条形图间隙,javascript,html,css,d3.js,c3.js,Javascript,Html,Css,D3.js,C3.js,我有一个关于C3 Javascript库的问题 我有一个条形图,它有组,所以它显示为一个带有多种颜色段的条形图。当我用黑白打印时,我想让它看起来更漂亮,我的同事不想修改配色方案,所以我的下一个想法是在条形图的每个部分之间增加大约2个像素的间距 在过去的五六天里,我搜索了所有C3示例,堆栈溢出,并尝试了一系列D3技巧,我真的被这一个困住了 我尝试过的一些方法是将变换/样式应用于创建图形分段的实际路径元素。到目前为止,我尝试过的样式(如边距或填充)中没有一种得到尊重,我认为这可能只是我所读到的路径元
this._graph = c3.generate({
bindto: '#graph',
size: {
height: 280
},
data: {
x: 'comparisons',
rows: graphData,
type: 'bar',
groups: [
['time1','time2','time3']
],
colors: {
'color1': this._green,
'color2': this._pink,
'color3': this._blue
},
labels: false, //use to remove data labels
order: null
},
transition: {
duration: 0
},
onresized: function() {
d3.selectAll("#graph .c3-texts .c3-text").each(function() {
d3.select(this).style('fill', 'black');
});
},
axis: {
x: {
type: 'category',
tick: {
outer: false,
centered: true
}
},
y: {
show: false
}
},
bar: {
width: {
ratio: 0.75
}
},
legend: {
position: 'bottom'
},
tooltip: {
show: false
},
transition: {
duration: 0
}
});
正如我所说的,我能够找到的唯一解决方案是使用D3选择路径元素,并应用一个函数,该函数在父上下文中引用一个变量,并应用每次递增平移的转换,但这显然不是一种理想的方法
我为我的无知提前道歉,我更像是C++和裸露的开发人员,我对JavaScript非常陌生。
谢谢,
-R我认为最简单的解决方案是在打印时应用边框。这假设您对打印事件有一定的控制权,并且能够在它实际打印之前拦截它并应用样式。这是否违反了“不修改配色方案”的规定?绝对没有违反它,我一直在考虑在表单中添加一个打印按钮,可以应用样式并为用户启动打印对话框。我仍然对其他解决方案感兴趣,但我认为这是一种可能性。