将 Y 轴的 0 值对齐 Plotly.js 中的容器中间
Align 0 value of Y-axis at the middle of container in Plotly.js
玩Plotly.js,需要制作具有正值和负值的堆叠条形图,但是这样Y轴的0值将在容器中间对齐,我怎么能实现了吗?
这是我卡住的游乐场:https://codepen.io/anatoly314/pen/oNjopvR
现在我的布局如下,但是最好看一下我的代码笔示例以了解全貌。
const layout = {
yaxis: {
visible: true,
constraintoward: 'center',
showticklabels: false
},
xaxis: {
visible: false
},
barmode: 'relative',
showlegend: false,
margin: {
l: 0,
r: 0,
t: 0,
b: 0
},
autosize: true,
height: 200,
width: 100,
displayModeBar: false
};
提前致谢
您必须手动设置 Y 轴范围。
const dataN = [trace1, trace2];
const dataP = [trace3, trace4];
const alldata = [...trace1.y, ...trace2.y, ...trace3.y, ...trace4.y];
const maxValue = Math.max(...alldata.map( e => Math.abs(e)));
var layout = {
yaxis: {
visible: true,
constraintoward: 'center',
showticklabels: false,
range: [-maxValue,maxValue]
},
玩Plotly.js,需要制作具有正值和负值的堆叠条形图,但是这样Y轴的0值将在容器中间对齐,我怎么能实现了吗?
这是我卡住的游乐场:https://codepen.io/anatoly314/pen/oNjopvR
现在我的布局如下,但是最好看一下我的代码笔示例以了解全貌。
const layout = {
yaxis: {
visible: true,
constraintoward: 'center',
showticklabels: false
},
xaxis: {
visible: false
},
barmode: 'relative',
showlegend: false,
margin: {
l: 0,
r: 0,
t: 0,
b: 0
},
autosize: true,
height: 200,
width: 100,
displayModeBar: false
};
提前致谢
您必须手动设置 Y 轴范围。
const dataN = [trace1, trace2];
const dataP = [trace3, trace4];
const alldata = [...trace1.y, ...trace2.y, ...trace3.y, ...trace4.y];
const maxValue = Math.max(...alldata.map( e => Math.abs(e)));
var layout = {
yaxis: {
visible: true,
constraintoward: 'center',
showticklabels: false,
range: [-maxValue,maxValue]
},