In mpFXYVector::SetData() the following lines cause small values to display all scrunched up:
Simply removing them solves all problems (for me).
Also, in mpScaleY::Plot the fmt = format options are rather arbitrary. I changed it just %g for my needs.
I derived a class from mpFXYVector to allow me to set the min and max values.
That's A bit of overkill. A more general solution to solve I expect 99% of cases is:
double diffY = (m_maxY - m_minY) * 0.05f;
m_minY -= diffY;
m_maxY += diffY;
double diffX = (m_maxX - m_minX) * 0.05f;
m_minX -= diffX;
m_maxX += diffX;
Gives a bit of space at top and bottom but scales to any arbitrary precision.