Message Boards Message Boards

Combine Plots into one using a loop?

GROUPS:

I want this program's plots to be combined into one plot - just can't seem to make it appear in one plot. Any suggestions?

n = -1; While[n < 3, 
sol = NDSolve[{D[xtraj[t], 
  t] == -(Sinh[
     2 xtraj[t] (-t)]/ 
      (Cosh[2 xtraj[t] (-t)])), xtraj[0] == n}, 
xtraj[t], {t, -4, 8}]; n = n + 0.25; 
p = ParametricPlot[{t, xtraj[t]} /. sol, {t, -4, 8}, 
PlotRange -> All, PlotStyle -> {Blue, Full, Thick}, 
AxesStyle -> Thickness[.001], LabelStyle -> {Black, Medium}]; 
Print[p]]
Attachment

Attachments:
POSTED BY: Betty Boo
Answer
2 months ago

This?

code

Download the notebook for the code.

Attachments:
POSTED BY: Shenghui Yang
Answer
2 months ago

Thanks.

POSTED BY: Betty Boo
Answer
2 months ago
sol = Table[
   NDSolveValue[{D[xtraj[t], 
       t] == -(Sinh[2 xtraj[t] (-t)]/(Cosh[2 xtraj[t] (-t)])), 
     xtraj[0] == n}, xtraj[t], {t, -4, 8}], {n, -1, 2.75, .25}];
Plot[sol, {t, -4, 8}, PlotRange -> All, PlotStyle -> Automatic, 
 AxesStyle -> Thickness[.001], LabelStyle -> {Black, Medium}, 
 AxesOrigin -> {0, -10}]

traj

POSTED BY: Alexander Trounev
Answer
2 months ago

The problem with this one is that the x and y values are different the plot is flattened?

POSTED BY: Betty Boo
Answer
2 months ago

We can use the additional option AspectRatio -> Automatic

Plot[sol, {t, -4, 8}, PlotRange -> All, PlotStyle -> Automatic, 
 AxesStyle -> Thickness[.001], LabelStyle -> {Black, Medium}, 
 AxesOrigin -> {0, -10}, AspectRatio -> Automatic]

traj1

POSTED BY: Alexander Trounev
Answer
2 months ago

That looks much better :-) thank you!

POSTED BY: Betty Boo
Answer
2 months ago

How about reversing the plot?

POSTED BY: Betty Boo
Answer
2 months ago

I have another question - how can I restrict the domain such that:

-0.1> xtraj[t]> 0.1

Any help would be much appreciated.

POSTED BY: Betty Boo
Answer
2 months ago

Is there anything like this?

sol1 = Table[
  NDSolveValue[{D[xtraj[t], 
      t] == -(Sinh[2 xtraj[t] (-t)]/(Cosh[2 xtraj[t] (-t)])), 
    xtraj[0] == n}, xtraj[t], {t, -4, 8}], {n, -.1, .1, .02}]; p1 = 
 Plot[sol1, {t, -4, 8}, PlotRange -> {{-1, 1}, {-.15, .15}}, 
  PlotStyle -> Automatic, AxesStyle -> Thickness[.001], 
  LabelStyle -> {Black, Medium}, 
  PlotLegends -> Table[n, {n, -.1, .1, .02}]]
POSTED BY: Alexander Trounev
Answer
2 months ago

Interesting code but it's not quite what I wanted - thanks.

POSTED BY: Betty Boo
Answer
2 months ago

Are you asking about excluding a range of y values when plotted or when integrated? Your question is not clear.

To restrict your plot you can use RegionFunction:

Plot[sol, {t, -4, 8}, PlotRange -> All, PlotStyle -> Automatic, 
 AxesStyle -> Thickness[.001], LabelStyle -> {Black, Medium}, 
 AxesOrigin -> {0, -10}, AspectRatio -> Automatic, 
 RegionFunction -> Function[{x, y}, (y > -2) && (y < 2)]]

to get

enter image description here

POSTED BY: Neil Singer
Answer
2 months ago

Group Abstract Group Abstract