These sound like great ideas, and something that I would use.
First bullet: To me, lock is correct as you suggested it. Lock means “doesn’t change” so when the scale doesn’t change (autoscaling is disabled) that should be the locked status. I presume that when you unlock the scaling, it would then jump to whatever the limits would have been if you had left lock off and panned to that point. By the way, autoscaling seems to be a little odd sometimes; it is possible to have a line that is almost flat against the bottom axis when panning. It seems like the scale is based on a wider range than is shown in the window, and that autoscale knows that there are some high values just outside the window and is taking them into account when determining the scale. This only seems to happen when panning, not when the graph is left alone.
Second bullet: Agree that pan & zoom should be allowed, and should override the YAML. If we are going to override a little of the YAML or scaling, then let us override all of it.
Third bullet: Same as above, don’t limit what we can do. We may come up with use cases you hadn’t thought of, or we may do something dumb, but let us control it and not the YAML.
Fourth bullet: Whatever you do should be documented. The shift key was an amusing find, but I don’t use it that much and could easily learn to use the space bar. Shift+scroll is somewhat intuitive since it is similar to control+scroll (although shift+scroll is not used in Windows to my knowledge), so use it for manual control.
Other: There should be some easy, intuitive, obvious way to get back to “normal”, or what the YAML says, or what it would look like if you had not messed with zooming and panning. In other words, a simple way to fix it when you mess up a graph with manual manipulation. Or in other words, a “reset” or “restore” button. Maybe something near the lock icon. I’m not sure what kind of icon represents “reset”, maybe a home. I suppose the escape key could be used, but an icon would be more obvious. Plus, if clicking and scrolling gets me in trouble, then I would look for something to click on to get out of trouble.
Thanks for your great work on this, and your continued efforts. It is WAY better than the standard graph.
PS: I still hope you consider the ability to have logarithmic Y scales as log-10 or log-2, settable in the YAML. Manual scaling helps this a lot, but it is still linear not logarithmic.