In addition, a grow/not grow dichotomy is to be avoided. There will be plants that do decently over a wide range, but especially well in a small range.
Let's say that any given plant at least grows over 90% of the range of values for a given metric; that the bottom 5% is too little and the top 5% is too much of a given soil metric for a given plant. That means that if there was only a single variable, then there's a 90% chance that a given plant and a given soil combination would work.
Now let's look at what happens when we make it ten variables, and all of them have the same 90% coverage with only 5% on the ends that doesn't grow. In order for any given plant to grow, it must be in the 90% span of all ten metrics. That's 0.9^10 = 34% coverage. Another way to look at it is to say that even in this extreme of a 90% span of allowable values in all variables, about 2/3 of all plants cannot grow in any given soil type.
And this scenario is the exact opposite of "vast differences" in plant soil preferences. If we narrow the ranges to create more variety in plant preferences, the number of plants that can grow in a soil quickly drops off.
Engineering an acceptable solution could be done like this: Let's say we decide that the idea of having only 1/4 of all plant types grow on any given soil is a reasonable distribution. Furthermore, we wish to have a variety in plant soil preferences, say only 50% of the range of any given variable is viable. Then the math becomes 0.5^x = 1/4, where x represents the number of variables needed to achieve this goal. Solving for x: x = log(1/4) / log(0.5) = 2 variables.
Another scenario: have only 1/20 of all plant types grow in any randomly selected soil sample, and have plant preferences set to 50% of each variable's range. The result: x = 4.3 variables. Since variables can only be an integer, we can fudge around with it by setting x=5, and then letting the percentage range or number of plant types change. Let's let the percent range change, so that the formula is: x^5=1/20. Solving for x, the span of viability on each of five variables becomes about 55% of the range.