Colors are not passive. When you work with more than one color (always!) you need to be concerned with how the colors will affect each other. On of the things you almost always are concerned with is how the background color will affect foreground colors. One type of effect is how higher saturation background will shift a neutral (gray) foreground color. Though the effect can be subtle, the gray foreground color can 'pick up' the background hue.
If you arrange all of the hues (in order of their wavelengh) around a circle, you end up with the classic color wheel. Colors opposite each other on the wheel are called 'complements'. One way of creating good contrast without shifting value (lightness) is to use complementary hues. Below are examples of high saturation complementary hues.
Probably the most common way of creating contrast is through shifting the value (lightness) of the foreground and background color. Notice in the next illustration that hue shift alone does not guarantee good contrast.
The size of an element will also influence how well they can be perceived. This is important not just for identifying the color of a single element, but also for discriminating between multiple colored elements. Notice that the higher saturation colors on the right are easier to discriminate between as they get smaller than the low saturation colors on the left.
The use of hatching can be used effectively to create the appearance of value/saturation shifts. Do note that depending on the output medium, some hatch patterns may not reproduce well. Notice on the low resolution bitmap image below, the finer, denser patterns did not reproduce accurately. Also note that you have the same discrimination problems with the lighter hatch patterns that you do with singular lines.
Rev 7/22/99 EW