fixed bug where vmin or vmax 0 would be ignored. using 'or' is cute, but None should always be tested for explicitly