vf = VectorPlot[{1, p*Exp[-p]}, {t, 0, 5}, {p, 0, 3},
VectorScale -> {0.05, Automatic, None}, VectorPoints -> 20,
VectorStyle -> {Gray, Arrowheads[0]}, AspectRatio -> Automatic]


Which gives the following image.

Is my thinking incorrect?

Absolutely weird, look what happens when I reverse the order of Gray and Arrowheads[0], changing no other code.

vf = VectorPlot[{1, p*Exp[-p]}, {t, 0, 5}, {p, 0, 3},
VectorScale -> {0.05, Automatic, None}, VectorPoints -> 20,
VectorStyle -> {Arrowheads[0], Gray}, AspectRatio -> Automatic]


Is this a bug?

Running Version 10.0.1.0.

A list of styles is the syntax for giving a series of styles to be applied cyclically to each of a series of plot elements. For example:

VectorPlot[{{y, -x}, {x, y}}, {x, -3, 3}, {y, -3, 3},


Observe that one field gets Gray while the other gets Arrowheads[0]. The correct syntax should be to use a sub-list (as Lou showed) or Directive, and here it works:

VectorPlot[{{y, -x}, {x, y}}, {x, -3, 3}, {y, -3, 3},


Observe that this time one field gets both Gray and Arrowheads[0] while the other gets Red.

However I think there may be a bug in that order matters where I cannot see why it should. This does not work the same as the plot above:

VectorPlot[{{y, -x}, {x, y}}, {x, -3, 3}, {y, -3, 3},

• Directive in VectorStyle doesn't work with Arrowheads though. Mathematica 10.0.2 for Mac here. – Taiki Apr 27 '15 at 21:11
vf = VectorPlot[{1, p*Exp[-p]}, {t, 0, 5}, {p, 0, 3},