gpt4 book ai didi

javascript - c3js › 值 0 在 Y 和 Y2 之间对齐

转载 作者:行者123 更新时间:2023-11-27 22:39:41 27 4
gpt4 key购买 nike

如何将Y 0 轴值与Y2 0 轴值对齐?

参见jsFiddle来理解。

我尝试了斧头上的选项center:0,但我不希望 0 位于图形中心..

var chart = c3.generate({
data: {
columns: [
['data1', 2000, 350, 300, -200, -50, 0],
['data2', 130, 100, 140, 200, 150, 50]
],
types: {
data1: 'line',
data2: 'bar'
},
axes:{
data1:'y',
data2:'y2'
}
},
axis: {
y: {
padding: {bottom: 0}

},
y2: {
show:true,
padding: {bottom: 0}

},
x: {

min: 0,
show: true
}
},
grid: {
x: {
show: false
},
y: {
show: false,
lines: [
{value: 0.0, text: 'i want 0 here ->', class:'red'}
]
}
}
});

Official documentation .

谢谢。

最佳答案

一般来说,您希望高于和低于零的轴范围比例相同,这就是为什么 min: -20 适用于此特定示例

生成图表后,这通常会起作用:

var d1 = d3.extent(chart.data.values("data1"));
var d2 = d3.extent(chart.data.values("data2"));
if (d2[0] < 0 || d1[0] < 0) {
var prop1 = d1[0] < 0 ? -(d1[1] / d1[0]) : Math.Infinity;
var prop2 = d2[0] < 0 ? -(d2[1] / d2[0]) : Math.Infinity;
if (prop1 > prop2) {
d1[0] = -(d1[1] / prop2);
} else {
d2[0] = -(d2[1] / prop1);
}
chart.axis.range({
min: {y: d1[0], y2: d2[0]},
max: {y: d1[1], y2: d2[1]}
});
}

基本上,如果一个(或两个)系列具有负值,则它会使用最小/最大轴设置将两个系列缩放为具有相同比例的正负范围。这意味着零位于两者的同一垂直点

https://jsfiddle.net/ynz6quum/4/

关于javascript - c3js › 值 0 在 Y 和 Y2 之间对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38851558/

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