I want to draw a 3D graph showing a nanoparticle movements in liquid environment. Basically,the code is like the followings. I used Table to generate the position coordinates instead of using the random movement position for simplicity here. My problem is I want to make the trajectory shown as connected lines instead of discrete points while maintain a rainbow-like color.

pts = Table[{t/100, (t/100)^1, (t/100)^2}, {t, 1, 100}];
pts1 = Table[{{t1/100, t1/100}, (t/100)^2}, {t1, 1, 100}, {t2, 1,100}];
Graphics3D[{Thickness[0.05], Hue[#], Point[#]} & /@ pts, BoxRatios -> {1, 1, 1}]

Perhaps VertexColors achieves what you're after?

Graphics3D[{Thickness[0.005], Line[#, VertexColors -> Hue /@ #]} &@ pts, BoxRatios -> {1, 1, 1}]

Mathematica graphics

If you want a "purer" rainbow, perhaps use just the first coordinate of the pts:

Graphics3D[{Thickness[0.005], Line[#, VertexColors -> Hue /@ #[[All, 1]]]} &@ pts, 
 BoxRatios -> {1, 1, 1}]

Mathematica graphics

In this case, the coordinates happen to go from 0 to 1. If not, you could use Rescale:

VertexColors -> Hue /@ Rescale[#[[All, 1]]]
  • $\begingroup$ That's perfect. Thanks $\endgroup$ – BNHSX Sep 19 '14 at 0:55
  • $\begingroup$ @MYG You're welcome. $\endgroup$ – Michael E2 Sep 19 '14 at 0:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.