# Function to smooth scale a line at certain cutpoints

I have a set of points that range from `(0, 300,000)` and I want to scale it so it goes from `(-1, 2)`. I can scale it linearly between `(-1, 1)` as shown below:

What I really want to do, however, is to have the transformation function scale it non-linearly: from `(0, 100,000]` I'd like it to be a smooth sigmoid-like curve ranging from `(-1, 1]`, and from `(100,000, 300,000])` I'd like it to scale like a log curve, going from `(1, 2)`. Something like this: