I have to wonder what version this is, since trying this on Mathematica 8 shows no difference.
Letting
dat = {-1, 0, 1/2, 2};
I see that
ListPlot[dat, PlotStyle -> {Red, Green, Blue}]
and
ListPlot[{dat}, PlotStyle -> {Red, Green, Blue}]
both produce the same plot, with blue points. Why this is the case might be a bit clearer if we peek into the InputForm[]
:
ListPlot[dat, PlotStyle -> {Red, Green, Blue}] // InputForm
Graphics[{{{}, {Hue[0.67, 0.6, 0.6],
RGBColor[1, 0, 0], RGBColor[0, 1, 0], RGBColor[0, 0, 1],
Point[{{1., -1.}, {2., 0.}, {3., 0.5}, {4., 2.}}]}, {}}},
{AspectRatio -> GoldenRatio^(-1), Axes -> True, AxesOrigin -> {0, 0},
PlotRange -> {{0, 4.}, {-1., 2.}}, PlotRangeClipping -> True,
PlotRangePadding -> {Scaled[0.02], Scaled[0.02]}}]
where the bit most important for our purposes is {Hue[0.67, 0.6, 0.6], RGBColor[1, 0, 0], RGBColor[0, 1, 0], RGBColor[0, 0, 1], Point[{{1., -1.}, {2., 0.}, {3., 0.5}, {4., 2.}}]}
. Notice the four, yes four color directives coming before the Point[]
object. Doing something similar to ListPlot[dat, PlotStyle -> Blue] // InputForm
gives the important part {Hue[0.67, 0.6, 0.6], RGBColor[0, 0, 1], Point[{{1., -1.}, {2., 0.}, {3., 0.5}, {4., 2.}}]}
.
By now, you should realize why the behavior of making only the last directive apply to the primitive(s) ought to be the case; in the simpler case of ListPlot[dat, PlotStyle -> Blue]
, this allows you to see your points in the color you intended them to be (blue) instead of the default color used by ListPlot[]
. In the OP's case, the other three colors preceding RGBColor[0, 0, 1]
and the Point[]
object are ignored in the final rendering, which is why you see them in blue.
In any event, if you're wondering why your third example turned red, you might want to inspect the InputForm[]
and do a few comparisons.