@ttquang1063750,
It seems your chart render the data two sides the upside render for the positive value and the downside render for the negative value.
Theoretically, negative values should be rendered below 0 and positive above 0. To make it look like even the negative values are positive, the work-around you are using seems to be a better option.
when I have hidden the income bar then the chart looks ugly.
To retain the range of the axis even after hiding the dataSeries, you can set axis minimum and maximum as shown in this updated JSFiddle.
—
Vishwas R
Team CanvasJS