Light/heat can affect most chameleon's colors at some point. If a chameleon is cold, it will darken its color to aborb more heat. If its hot it will become a lighter color.
In its environment, if two meet, the colors will usually change...two males meeting will take on "aggressive" coloration while a male meeting a gravid female will usually cause her to darken her colors and/or take on a pattern. Even two females meeting can have cause color changes.
Sometimes when a chameleon is sick its colors will be more drab than if it were healthy. Its almost as if its too much of an effort to keep their "healthy" colors up.
I have even had the odd chameleon change colors when I've given it medication.
I've probably missed other examples that I should have included.