Velocity is a vector, in your case 1-dimensional, and so its sign indicates its direction. It is a matter of convention which direction is taken to be positive, but you can establish the convention in use by examining your formula
h = - 16 \cdot t^2 + v \cdot t + h_0
The first element on the right comes from acceleration, the second from initial velocity and the last is the initial height.
Now, consider how h changes for very small t, i.e. before the effect of acceleration becomes visible. As you can see positive v leads to h increasing with time, i.e. velocity oriented upward. Similarly, negative v leads to h decreasing with time, i.e. velocity oriented downward.
This means that your code is probably correct assuming it does not violate some externally defined velocity sign convention.
The way you read your graph is this: negative velocity means the body falling down, positive velocity means the body climbing. If you start with initial velocity zero, you would expect the body to start falling immediately, which is indeed what happens. If you set the initial velocity to a positive number, it will start positive, indicating that the body initially climbs, then it will linearly decrease to zero, indicating that it slows down until it stops at the highest point and finally the velocity will become negative indicating that the body starts to fall down.