Matplotlib for python solves this with a SymLogScale, which is allows you to chart (-10 ^3, - 10^2,..., 10^2, 10^3) in the way that you'd expect. It does this by being linear between two small limits (to avoid doing log(0) and upsetting the mathmos) and showing sign(x) * log(abs(x)) elsewhere.
You can probably do the transformation yourself directly on your data, and then do the inverse transformation relatively easily for your tool tips.
You can probably do the transformation yourself directly on your data, and then do the inverse transformation relatively easily for your tool tips.
https://matplotlib.org/stable/api/scale_api.html#matplotlib....