better axis scaling, negative value support