Water spinach is an herbaceous aquatic or semi-aquatic perennial plant of the tropics and subtropics .