# StreamPlot is giving correct answer while VectorPlot gives wrong answer

I'm trying to plot this vector <1,3*y^(2/3)> using vector plot. but it gives me a wrong answer.

VectorPlot[{1, 3*y^(2/3)}, {x, -8, 3}, {y, -3, 4}, Axes -> True,
AspectRatio -> Automatic]


But if I try StreamPlot it gives me the correct answer.

StreamPlot[{1, 3*y^(2/3)}, {x, -8, 3}, {y, -3, 4}, Axes -> True,
AspectRatio -> Automatic]


What am I doing wrong in VectorPlot?

• Didn't understand what you mean. Can you explain a little bit more? Thank you. – md seum Feb 6 at 18:33
• deleted comment, because streamplot says StreamPlot does not show streamlines at any positions for which the v_i etc. do not evaluate to real numbers. but when I looked at VectorPlot it also said the same thing. So I do not know why VectorPlot shows vectors in negative y but not StreamPlot. May be VectorPlot is the one which should not show that region. If you type Table[3*y^(2/3), {y, -3, 4, .1}] you see that in negative region y becomes non-real. – Nasser Feb 6 at 18:39
• To see this, try StreamPlot[Evaluate[{1, Re[3*y^(2/3)]}], {x, -8, 3}, {y, -3, 4}, Axes -> True, AspectRatio -> Automatic] and now you get similar plot to VectorPlot – Nasser Feb 6 at 18:42
• I got your point. But how can I Solve it now? – md seum Feb 6 at 18:43
• how can I Solve it now other than what I showed above, which is to use Re, I do not know. – Nasser Feb 6 at 18:48

## 1 Answer

If you want reals, then try plots as

VectorPlot[{1, 3*CubeRoot[y^2]}, {x, -8, 3}, {y, -3, 4}, Axes -> True,
AspectRatio -> Automatic]


and

StreamPlot[{1, 3*CubeRoot[y^2]}, {x, -8, 3}, {y, -3, 4}, Axes -> True,
AspectRatio -> Automatic]


They then match.

• Thank you all. Problem solved – md seum Feb 6 at 18:54