Integrative analysis of stressor gradients reveals multiple discrete trait-defined axes underlie community assembly