Skip to main content
deleted 337 characters in body
Source Link
Mr.Wizard
  • 273.1k
  • 34
  • 595
  • 1.4k

Here I join 3 figures with lines in a tricky way, where I plot vertical and horizontal lines separately and set them by Inset at appropriate positions in such a way that the lines vanish when they touch the end figures.
Figure~1 http://s14.postimage.org/or877n6e9/image.jpgFigure~1

y[t_] := Sin[\[Pi]Sin[π t]/(\[Pi]π t);
p[t_] = t^2;
a = 0.7;
b = 5.2;
yRoots = t /. {ToRules@Reduce[{y[t] == 0, 0 <= t <= 5}, t]};
yDRoots = t /. {ToRules@N@Reduce[{y'[t] == 0, 0 <= t <= 5}, y]};
ranges = Append[Prepend[yDRoots, 0], 6];
\[Theta][t_]θ[t_] := Piecewise[Table[{ArcTan[y[t]/(p[t] y'[t])] + k Pi, ranges[[k]] < t <= ranges[[k + 1]]}, {k, Length@ranges - 1}]];
\[Rho][t_]ρ[t_] := Sqrt[(y[t])^2 + (p[t] y'[t])^2];
\[CurlyEpsilon]ε = 1/(10^7);
p1 = Plot[\[Theta][t]Plot[θ[t], {t, a, b}, Ticks -> {None, Join[Table[{k Pi, k \[Pi]π}, {k, 0, 5}], Table[{(2 k - 1) Pi/2, (2 k - 1) Pi/2}, {k, 1, 5}]]}, AxesLabel -> {"t", "\[Theta]""θ"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {0, 16}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, \[Theta][#]θ[#]}&/@yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, \[Theta][#]θ[#]}&/@(yDRoots + \[CurlyEpsilon]ε)]},
     {Black, AbsolutePointSize@5,Point[{{a, \[Theta][a]θ[a]}, {b, \[Theta][b]θ[b]}}]},
     {Gray, Dashed, Line[{{0, \[Theta][#]θ[#]}, {#, \[Theta][#]θ[#]}, {#, -100}}&/@yRoots], Line[{{0, \[Theta][#]θ[#]}, {#, \[Theta][#]θ[#]}}&/@yRoots]},
     {Gray, Dashed, Line[{{0, \[Theta][#]θ[#]}, {#, \[Theta][#]θ[#]}, {#, -100}}&/@(yDRoots+\[CurlyEpsilon]yDRoots+ε)]}}];
p2 = Plot[y[t], {t, a, b}, Ticks -> {Table[{k, ""}, {k, 1, 5}], {{1, ""}}}, AxesLabel -> {"t", "y"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, y[#]} & /@ yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, y[#]} & /@ yDRoots]},
     {Black, AbsolutePointSize@5, Point[{{a, y[a]}, {b, y[b]}}]},
     {Gray, Dashed, Line[{{#, 0}, {#, 100}} & /@ yRoots]},
     {Gray, Dashed, Line[{{100, y[#]}, {#, y[#]}, {#, 100}} & /@ yDRoots]}}];
p3 = ParametricPlot[{\[Rho][t]ρ[t] Cos[\[Theta][t]]Cos[θ[t]], \[Rho][t]ρ[t] Sin[\[Theta][t]]Sin[θ[t]]}, {t, a, b}, Ticks -> None, AxesLabel -> None, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, ImagePadding -> 20, PlotRange -> {{-6, 6}, {-0.3, 1}}, AspectRatio -> 1, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[(\[Rho][#]*ρ[#]*{Cos[\[Theta][#]]Cos[θ[#]], Sin[\[Theta][#]]Sin[θ[#]]})&/@yRoots]},
     {Blue, AbsolutePointSize@5,Point[(\[Rho][#]*ρ[#]*{Cos[\[Theta][#]]Cos[θ[#]], Sin[\[Theta][#]]Sin[θ[#]]}) & /@ (yDRoots + \[CurlyEpsilon]ε)]},
     {Black, AbsolutePointSize@5, Point[{\[Rho][a]*ρ[a]*{Cos[\[Theta][a]]Cos[θ[a]], Sin[\[Theta][a]]Sin[θ[a]]}, \[Rho][b]*ρ[b]*{Cos[\[Theta][b]]Cos[θ[b]], Sin[\[Theta][b]]Sin[θ[b]]}}]},
     {Gray, Dashed,Line[{({-100, \[Rho][#]*Sin[\[Theta][#]]ρ[#]*Sin[θ[#]]}), (\[Rho][#]*ρ[#]*{Cos[\[Theta][#]]Cos[θ[#]],Sin[\[Theta][#]]Sin[θ[#]]})}&/@(yDRoots + \[CurlyEpsilon]ε)]},
     {Gray, Dotted, Line[{{0, 0}, (\[Rho][a]*ρ[a]*{Cos[\[Theta][a]]Cos[θ[a]],Sin[\[Theta][a]]Sin[θ[a]]})}]}}];
(* Vertical lines *)
pvl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-1, 1}}, AspectRatio -> 1,  ImagePadding -> 20, 
   Epilog -> {{Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@ yRoots]},
     {Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@yDRoots]}}];
(* Horizontal lines *)
phl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
  Epilog -> {{Gray, Dashed, Line[{{0.03, y[#]}, {0.9, y[#]}} & /@yDRoots]}}];
(* Put the images together *)
Graphics[{Inset[p1, ImageScaled@{.05, 0.52}, {0, 0}, 1], 
  Inset[pvl, ImageScaled@{.05, .31}, {0, 0}, 1], 
  Inset[p2, ImageScaled@{.05, .12}, {0, 0}, 1], 
  Inset[phl, ImageScaled@{.48, .12}, {0, 0}, 1], 
  Inset[p3, ImageScaled@{.77, .12}, {0, 0}, 1]}, ImageSize -> 800, PlotRange -> All]

Here I join 3 figures with lines in a tricky way, where I plot vertical and horizontal lines separately and set them by Inset at appropriate positions in such a way that the lines vanish when they touch the end figures.
Figure~1 http://s14.postimage.org/or877n6e9/image.jpg

y[t_] := Sin[\[Pi] t]/(\[Pi] t);
p[t_] = t^2;
a = 0.7;
b = 5.2;
yRoots = t /. {ToRules@Reduce[{y[t] == 0, 0 <= t <= 5}, t]};
yDRoots = t /. {ToRules@N@Reduce[{y'[t] == 0, 0 <= t <= 5}, y]};
ranges = Append[Prepend[yDRoots, 0], 6];
\[Theta][t_] := Piecewise[Table[{ArcTan[y[t]/(p[t] y'[t])] + k Pi, ranges[[k]] < t <= ranges[[k + 1]]}, {k, Length@ranges - 1}]];
\[Rho][t_] := Sqrt[(y[t])^2 + (p[t] y'[t])^2];
\[CurlyEpsilon] = 1/(10^7);
p1 = Plot[\[Theta][t], {t, a, b}, Ticks -> {None, Join[Table[{k Pi, k \[Pi]}, {k, 0, 5}], Table[{(2 k - 1) Pi/2, (2 k - 1) Pi/2}, {k, 1, 5}]]}, AxesLabel -> {"t", "\[Theta]"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {0, 16}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@(yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5,Point[{{a, \[Theta][a]}, {b, \[Theta][b]}}]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@yRoots], Line[{{0, \[Theta][#]}, {#, \[Theta][#]}}&/@yRoots]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@(yDRoots+\[CurlyEpsilon])]}}];
p2 = Plot[y[t], {t, a, b}, Ticks -> {Table[{k, ""}, {k, 1, 5}], {{1, ""}}}, AxesLabel -> {"t", "y"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, y[#]} & /@ yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, y[#]} & /@ yDRoots]},
     {Black, AbsolutePointSize@5, Point[{{a, y[a]}, {b, y[b]}}]},
     {Gray, Dashed, Line[{{#, 0}, {#, 100}} & /@ yRoots]},
     {Gray, Dashed, Line[{{100, y[#]}, {#, y[#]}, {#, 100}} & /@ yDRoots]}}];
p3 = ParametricPlot[{\[Rho][t] Cos[\[Theta][t]], \[Rho][t] Sin[\[Theta][t]]}, {t, a, b}, Ticks -> None, AxesLabel -> None, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, ImagePadding -> 20, PlotRange -> {{-6, 6}, {-0.3, 1}}, AspectRatio -> 1, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]})&/@yRoots]},
     {Blue, AbsolutePointSize@5,Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]}) & /@ (yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5, Point[{\[Rho][a]*{Cos[\[Theta][a]], Sin[\[Theta][a]]}, \[Rho][b]*{Cos[\[Theta][b]], Sin[\[Theta][b]]}}]},
     {Gray, Dashed,Line[{({-100, \[Rho][#]*Sin[\[Theta][#]]}), (\[Rho][#]*{Cos[\[Theta][#]],Sin[\[Theta][#]]})}&/@(yDRoots + \[CurlyEpsilon])]},
     {Gray, Dotted, Line[{{0, 0}, (\[Rho][a]*{Cos[\[Theta][a]],Sin[\[Theta][a]]})}]}}];
(* Vertical lines *)
pvl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-1, 1}}, AspectRatio -> 1,  ImagePadding -> 20, 
   Epilog -> {{Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@ yRoots]},
     {Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@yDRoots]}}];
(* Horizontal lines *)
phl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
  Epilog -> {{Gray, Dashed, Line[{{0.03, y[#]}, {0.9, y[#]}} & /@yDRoots]}}];
(* Put the images together *)
Graphics[{Inset[p1, ImageScaled@{.05, 0.52}, {0, 0}, 1], 
  Inset[pvl, ImageScaled@{.05, .31}, {0, 0}, 1], 
  Inset[p2, ImageScaled@{.05, .12}, {0, 0}, 1], 
  Inset[phl, ImageScaled@{.48, .12}, {0, 0}, 1], 
  Inset[p3, ImageScaled@{.77, .12}, {0, 0}, 1]}, ImageSize -> 800, PlotRange -> All]

Here I join 3 figures with lines in a tricky way, where I plot vertical and horizontal lines separately and set them by Inset at appropriate positions in such a way that the lines vanish when they touch the end figures.
Figure~1

y[t_] := Sin[π t]/(π t);
p[t_] = t^2;
a = 0.7;
b = 5.2;
yRoots = t /. {ToRules@Reduce[{y[t] == 0, 0 <= t <= 5}, t]};
yDRoots = t /. {ToRules@N@Reduce[{y'[t] == 0, 0 <= t <= 5}, y]};
ranges = Append[Prepend[yDRoots, 0], 6];
θ[t_] := Piecewise[Table[{ArcTan[y[t]/(p[t] y'[t])] + k Pi, ranges[[k]] < t <= ranges[[k + 1]]}, {k, Length@ranges - 1}]];
ρ[t_] := Sqrt[(y[t])^2 + (p[t] y'[t])^2];
ε = 1/(10^7);
p1 = Plot[θ[t], {t, a, b}, Ticks -> {None, Join[Table[{k Pi, k π}, {k, 0, 5}], Table[{(2 k - 1) Pi/2, (2 k - 1) Pi/2}, {k, 1, 5}]]}, AxesLabel -> {"t", "θ"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {0, 16}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, θ[#]}&/@yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, θ[#]}&/@(yDRoots + ε)]},
     {Black, AbsolutePointSize@5,Point[{{a, θ[a]}, {b, θ[b]}}]},
     {Gray, Dashed, Line[{{0, θ[#]}, {#, θ[#]}, {#, -100}}&/@yRoots], Line[{{0, θ[#]}, {#, θ[#]}}&/@yRoots]},
     {Gray, Dashed, Line[{{0, θ[#]}, {#, θ[#]}, {#, -100}}&/@(yDRoots+ε)]}}];
p2 = Plot[y[t], {t, a, b}, Ticks -> {Table[{k, ""}, {k, 1, 5}], {{1, ""}}}, AxesLabel -> {"t", "y"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, y[#]} & /@ yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, y[#]} & /@ yDRoots]},
     {Black, AbsolutePointSize@5, Point[{{a, y[a]}, {b, y[b]}}]},
     {Gray, Dashed, Line[{{#, 0}, {#, 100}} & /@ yRoots]},
     {Gray, Dashed, Line[{{100, y[#]}, {#, y[#]}, {#, 100}} & /@ yDRoots]}}];
p3 = ParametricPlot[{ρ[t] Cos[θ[t]], ρ[t] Sin[θ[t]]}, {t, a, b}, Ticks -> None, AxesLabel -> None, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, ImagePadding -> 20, PlotRange -> {{-6, 6}, {-0.3, 1}}, AspectRatio -> 1, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[(ρ[#]*{Cos[θ[#]], Sin[θ[#]]})&/@yRoots]},
     {Blue, AbsolutePointSize@5,Point[(ρ[#]*{Cos[θ[#]], Sin[θ[#]]}) & /@ (yDRoots + ε)]},
     {Black, AbsolutePointSize@5, Point[{ρ[a]*{Cos[θ[a]], Sin[θ[a]]}, ρ[b]*{Cos[θ[b]], Sin[θ[b]]}}]},
     {Gray, Dashed,Line[{({-100, ρ[#]*Sin[θ[#]]}), (ρ[#]*{Cos[θ[#]],Sin[θ[#]]})}&/@(yDRoots + ε)]},
     {Gray, Dotted, Line[{{0, 0}, (ρ[a]*{Cos[θ[a]],Sin[θ[a]]})}]}}];
(* Vertical lines *)
pvl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-1, 1}}, AspectRatio -> 1,  ImagePadding -> 20, 
   Epilog -> {{Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@ yRoots]},
     {Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@yDRoots]}}];
(* Horizontal lines *)
phl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
  Epilog -> {{Gray, Dashed, Line[{{0.03, y[#]}, {0.9, y[#]}} & /@yDRoots]}}];
(* Put the images together *)
Graphics[{Inset[p1, ImageScaled@{.05, 0.52}, {0, 0}, 1], 
  Inset[pvl, ImageScaled@{.05, .31}, {0, 0}, 1], 
  Inset[p2, ImageScaled@{.05, .12}, {0, 0}, 1], 
  Inset[phl, ImageScaled@{.48, .12}, {0, 0}, 1], 
  Inset[p3, ImageScaled@{.77, .12}, {0, 0}, 1]}, ImageSize -> 800, PlotRange -> All]
The comment on `GraphicsGrid` `Spacings` by **István Zachar** is considered.
Source Link
bkarpuz
  • 809
  • 5
  • 16
y[t_] := Sin[\[Pi] t]/(\[Pi] t);
p[t_] = t^2;
a = 0.7;
b = 5.2;
yRoots = t /. {ToRules@Reduce[{y[t] == 0, 0 <= t <= 5}, t]};
yDRoots = t /. {ToRules@N@Reduce[{y'[t] == 0, 0 <= t <= 5}, y]};
ranges = Append[Prepend[yDRoots, 0], 6];
\[Theta][t_] := Piecewise[Table[{ArcTan[y[t]/(p[t] y'[t])] + k Pi, ranges[[k]] < t <= ranges[[k + 1]]}, {k, Length@ranges - 1}]];
\[Rho][t_] := Sqrt[(y[t])^2 + (p[t] y'[t])^2];
\[CurlyEpsilon] = 1/(10^7);
p1 = Plot[\[Theta][t], {t, a, b}, Ticks -> {None, Join[Table[{k Pi, k \[Pi]}, {k, 0, 5}], Table[{(2 k - 1) Pi/2, (2 k - 1) Pi/2}, {k, 1, 5}]]}, AxesLabel -> {"t", "\[Theta]"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {0, 16}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@(yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5,Point[{{a, \[Theta][a]}, {b, \[Theta][b]}}]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@yRoots], Line[{{0, \[Theta][#]}, {#, \[Theta][#]}}&/@yRoots]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@(yDRoots+\[CurlyEpsilon])]}}];
p2 = Plot[y[t], {t, a, b}, Ticks -> {Table[{k, ""}, {k, 1, 5}], {{1, ""}}}, AxesLabel -> {"t", "y"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, y[#]} & /@ yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, y[#]} & /@ yDRoots]},
     {Black, AbsolutePointSize@5, Point[{{a, y[a]}, {b, y[b]}}]},
     {Gray, Dashed, Line[{{#, 0}, {#, 100}} & /@ yRoots]},
     {Gray, Dashed, Line[{{100, y[#]}, {#, y[#]}, {#, 100}} & /@ yDRoots]}}];
p3 = ParametricPlot[{\[Rho][t] Cos[\[Theta][t]], \[Rho][t] Sin[\[Theta][t]]}, {t, a, b}, Ticks -> None, AxesLabel -> None, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, ImagePadding -> 20, PlotRange -> {{-6, 6}, {-0.3, 1}}, AspectRatio -> 1, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]})&/@yRoots]},
     {Blue, AbsolutePointSize@5,Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]}) & /@ (yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5, Point[{\[Rho][a]*{Cos[\[Theta][a]], Sin[\[Theta][a]]}, \[Rho][b]*{Cos[\[Theta][b]], Sin[\[Theta][b]]}}]},
     {Gray, Dashed,Line[{({-100, \[Rho][#]*Sin[\[Theta][#]]}), (\[Rho][#]*{Cos[\[Theta][#]],Sin[\[Theta][#]]})}&/@(yDRoots + \[CurlyEpsilon])]},
     {Gray, Dotted, Line[{{0, 0}, (\[Rho][a]*{Cos[\[Theta][a]],Sin[\[Theta][a]]})}]}}];
(* Vertical lines *)
pvl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-1, 1}}, AspectRatio -> 1,  ImagePadding -> 20, 
   Epilog -> {{Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@ yRoots]},
     {Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@yDRoots]}}];  
(* VerticalHorizontal lines *)
phl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
  Epilog -> {{Gray, Dashed, Line[{{0.03, y[#]}, {0.9, y[#]}} & /@yDRoots]}}];  
(* HorizontalPut linesthe images together *)
Graphics[{Inset[p1, ImageScaled@{.05, 0.52}, {0, 0}, 1], 
  Inset[pvl, ImageScaled@{.05, .31}, {0, 0}, 1], 
  Inset[p2, ImageScaled@{.05, .12}, {0, 0}, 1], 
  Inset[phl, ImageScaled@{.48, .12}, {0, 0}, 1], 
  Inset[p3, ImageScaled@{.77, .12}, {0, 0}, 1]}, ImageSize -> 800, PlotRange -> All]

However, it would be easier if the distance between the images in aUsing GraphicsGrid this can be removeddone easier as it setsfollows by replacing the positions automaticallycode under the last comments in the above with the following.

GraphicsGrid[{{p1,Null,Null},{pvl,Null,Null},{p2,phl,p3}},ImageSize->600,Spacings->-66]
y[t_] := Sin[\[Pi] t]/(\[Pi] t);
p[t_] = t^2;
a = 0.7;
b = 5.2;
yRoots = t /. {ToRules@Reduce[{y[t] == 0, 0 <= t <= 5}, t]};
yDRoots = t /. {ToRules@N@Reduce[{y'[t] == 0, 0 <= t <= 5}, y]};
ranges = Append[Prepend[yDRoots, 0], 6];
\[Theta][t_] := Piecewise[Table[{ArcTan[y[t]/(p[t] y'[t])] + k Pi, ranges[[k]] < t <= ranges[[k + 1]]}, {k, Length@ranges - 1}]];
\[Rho][t_] := Sqrt[(y[t])^2 + (p[t] y'[t])^2];
\[CurlyEpsilon] = 1/(10^7);
p1 = Plot[\[Theta][t], {t, a, b}, Ticks -> {None, Join[Table[{k Pi, k \[Pi]}, {k, 0, 5}], Table[{(2 k - 1) Pi/2, (2 k - 1) Pi/2}, {k, 1, 5}]]}, AxesLabel -> {"t", "\[Theta]"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {0, 16}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@(yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5,Point[{{a, \[Theta][a]}, {b, \[Theta][b]}}]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@yRoots], Line[{{0, \[Theta][#]}, {#, \[Theta][#]}}&/@yRoots]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@(yDRoots+\[CurlyEpsilon])]}}];
p2 = Plot[y[t], {t, a, b}, Ticks -> {Table[{k, ""}, {k, 1, 5}], {{1, ""}}}, AxesLabel -> {"t", "y"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, y[#]} & /@ yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, y[#]} & /@ yDRoots]},
     {Black, AbsolutePointSize@5, Point[{{a, y[a]}, {b, y[b]}}]},
     {Gray, Dashed, Line[{{#, 0}, {#, 100}} & /@ yRoots]},
     {Gray, Dashed, Line[{{100, y[#]}, {#, y[#]}, {#, 100}} & /@ yDRoots]}}];
p3 = ParametricPlot[{\[Rho][t] Cos[\[Theta][t]], \[Rho][t] Sin[\[Theta][t]]}, {t, a, b}, Ticks -> None, AxesLabel -> None, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, ImagePadding -> 20, PlotRange -> {{-6, 6}, {-0.3, 1}}, AspectRatio -> 1, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]})&/@yRoots]},
     {Blue, AbsolutePointSize@5,Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]}) & /@ (yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5, Point[{\[Rho][a]*{Cos[\[Theta][a]], Sin[\[Theta][a]]}, \[Rho][b]*{Cos[\[Theta][b]], Sin[\[Theta][b]]}}]},
     {Gray, Dashed,Line[{({-100, \[Rho][#]*Sin[\[Theta][#]]}), (\[Rho][#]*{Cos[\[Theta][#]],Sin[\[Theta][#]]})}&/@(yDRoots + \[CurlyEpsilon])]},
     {Gray, Dotted, Line[{{0, 0}, (\[Rho][a]*{Cos[\[Theta][a]],Sin[\[Theta][a]]})}]}}];
pvl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-1, 1}}, AspectRatio -> 1,  ImagePadding -> 20, 
   Epilog -> {{Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@ yRoots]},
     {Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@yDRoots]}}]; (* Vertical lines *)
phl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
  Epilog -> {{Gray, Dashed, Line[{{0.03, y[#]}, {0.9, y[#]}} & /@yDRoots]}}]; (* Horizontal lines *)
Graphics[{Inset[p1, ImageScaled@{.05, 0.52}, {0, 0}, 1], 
  Inset[pvl, ImageScaled@{.05, .31}, {0, 0}, 1], 
  Inset[p2, ImageScaled@{.05, .12}, {0, 0}, 1], 
  Inset[phl, ImageScaled@{.48, .12}, {0, 0}, 1], 
  Inset[p3, ImageScaled@{.77, .12}, {0, 0}, 1]}, ImageSize -> 800, PlotRange -> All]

However, it would be easier if the distance between the images in a GraphicsGrid can be removed as it sets the positions automatically.

y[t_] := Sin[\[Pi] t]/(\[Pi] t);
p[t_] = t^2;
a = 0.7;
b = 5.2;
yRoots = t /. {ToRules@Reduce[{y[t] == 0, 0 <= t <= 5}, t]};
yDRoots = t /. {ToRules@N@Reduce[{y'[t] == 0, 0 <= t <= 5}, y]};
ranges = Append[Prepend[yDRoots, 0], 6];
\[Theta][t_] := Piecewise[Table[{ArcTan[y[t]/(p[t] y'[t])] + k Pi, ranges[[k]] < t <= ranges[[k + 1]]}, {k, Length@ranges - 1}]];
\[Rho][t_] := Sqrt[(y[t])^2 + (p[t] y'[t])^2];
\[CurlyEpsilon] = 1/(10^7);
p1 = Plot[\[Theta][t], {t, a, b}, Ticks -> {None, Join[Table[{k Pi, k \[Pi]}, {k, 0, 5}], Table[{(2 k - 1) Pi/2, (2 k - 1) Pi/2}, {k, 1, 5}]]}, AxesLabel -> {"t", "\[Theta]"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {0, 16}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@(yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5,Point[{{a, \[Theta][a]}, {b, \[Theta][b]}}]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@yRoots], Line[{{0, \[Theta][#]}, {#, \[Theta][#]}}&/@yRoots]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@(yDRoots+\[CurlyEpsilon])]}}];
p2 = Plot[y[t], {t, a, b}, Ticks -> {Table[{k, ""}, {k, 1, 5}], {{1, ""}}}, AxesLabel -> {"t", "y"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, y[#]} & /@ yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, y[#]} & /@ yDRoots]},
     {Black, AbsolutePointSize@5, Point[{{a, y[a]}, {b, y[b]}}]},
     {Gray, Dashed, Line[{{#, 0}, {#, 100}} & /@ yRoots]},
     {Gray, Dashed, Line[{{100, y[#]}, {#, y[#]}, {#, 100}} & /@ yDRoots]}}];
p3 = ParametricPlot[{\[Rho][t] Cos[\[Theta][t]], \[Rho][t] Sin[\[Theta][t]]}, {t, a, b}, Ticks -> None, AxesLabel -> None, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, ImagePadding -> 20, PlotRange -> {{-6, 6}, {-0.3, 1}}, AspectRatio -> 1, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]})&/@yRoots]},
     {Blue, AbsolutePointSize@5,Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]}) & /@ (yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5, Point[{\[Rho][a]*{Cos[\[Theta][a]], Sin[\[Theta][a]]}, \[Rho][b]*{Cos[\[Theta][b]], Sin[\[Theta][b]]}}]},
     {Gray, Dashed,Line[{({-100, \[Rho][#]*Sin[\[Theta][#]]}), (\[Rho][#]*{Cos[\[Theta][#]],Sin[\[Theta][#]]})}&/@(yDRoots + \[CurlyEpsilon])]},
     {Gray, Dotted, Line[{{0, 0}, (\[Rho][a]*{Cos[\[Theta][a]],Sin[\[Theta][a]]})}]}}];
(* Vertical lines *)
pvl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-1, 1}}, AspectRatio -> 1,  ImagePadding -> 20, 
   Epilog -> {{Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@ yRoots]},
     {Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@yDRoots]}}]; 
(* Horizontal lines *)
phl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
  Epilog -> {{Gray, Dashed, Line[{{0.03, y[#]}, {0.9, y[#]}} & /@yDRoots]}}]; 
(* Put the images together *)
Graphics[{Inset[p1, ImageScaled@{.05, 0.52}, {0, 0}, 1], 
  Inset[pvl, ImageScaled@{.05, .31}, {0, 0}, 1], 
  Inset[p2, ImageScaled@{.05, .12}, {0, 0}, 1], 
  Inset[phl, ImageScaled@{.48, .12}, {0, 0}, 1], 
  Inset[p3, ImageScaled@{.77, .12}, {0, 0}, 1]}, ImageSize -> 800, PlotRange -> All]

Using GraphicsGrid this can be done easier as follows by replacing the code under the last comments in the above with the following.

GraphicsGrid[{{p1,Null,Null},{pvl,Null,Null},{p2,phl,p3}},ImageSize->600,Spacings->-66]
Source Link
bkarpuz
  • 809
  • 5
  • 16

Here I join 3 figures with lines in a tricky way, where I plot vertical and horizontal lines separately and set them by Inset at appropriate positions in such a way that the lines vanish when they touch the end figures.
Figure~1 http://s14.postimage.org/or877n6e9/image.jpg

y[t_] := Sin[\[Pi] t]/(\[Pi] t);
p[t_] = t^2;
a = 0.7;
b = 5.2;
yRoots = t /. {ToRules@Reduce[{y[t] == 0, 0 <= t <= 5}, t]};
yDRoots = t /. {ToRules@N@Reduce[{y'[t] == 0, 0 <= t <= 5}, y]};
ranges = Append[Prepend[yDRoots, 0], 6];
\[Theta][t_] := Piecewise[Table[{ArcTan[y[t]/(p[t] y'[t])] + k Pi, ranges[[k]] < t <= ranges[[k + 1]]}, {k, Length@ranges - 1}]];
\[Rho][t_] := Sqrt[(y[t])^2 + (p[t] y'[t])^2];
\[CurlyEpsilon] = 1/(10^7);
p1 = Plot[\[Theta][t], {t, a, b}, Ticks -> {None, Join[Table[{k Pi, k \[Pi]}, {k, 0, 5}], Table[{(2 k - 1) Pi/2, (2 k - 1) Pi/2}, {k, 1, 5}]]}, AxesLabel -> {"t", "\[Theta]"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {0, 16}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, \[Theta][#]}&/@(yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5,Point[{{a, \[Theta][a]}, {b, \[Theta][b]}}]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@yRoots], Line[{{0, \[Theta][#]}, {#, \[Theta][#]}}&/@yRoots]},
     {Gray, Dashed, Line[{{0, \[Theta][#]}, {#, \[Theta][#]}, {#, -100}}&/@(yDRoots+\[CurlyEpsilon])]}}];
p2 = Plot[y[t], {t, a, b}, Ticks -> {Table[{k, ""}, {k, 1, 5}], {{1, ""}}}, AxesLabel -> {"t", "y"}, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[{#, y[#]} & /@ yRoots]},
     {Blue, AbsolutePointSize@5, Point[{#, y[#]} & /@ yDRoots]},
     {Black, AbsolutePointSize@5, Point[{{a, y[a]}, {b, y[b]}}]},
     {Gray, Dashed, Line[{{#, 0}, {#, 100}} & /@ yRoots]},
     {Gray, Dashed, Line[{{100, y[#]}, {#, y[#]}, {#, 100}} & /@ yDRoots]}}];
p3 = ParametricPlot[{\[Rho][t] Cos[\[Theta][t]], \[Rho][t] Sin[\[Theta][t]]}, {t, a, b}, Ticks -> None, AxesLabel -> None, AxesStyle -> Directive[14], AxesOrigin -> {0, 0}, ImagePadding -> 20, PlotRange -> {{-6, 6}, {-0.3, 1}}, AspectRatio -> 1, 
   Epilog -> {{Red, AbsolutePointSize@5, Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]})&/@yRoots]},
     {Blue, AbsolutePointSize@5,Point[(\[Rho][#]*{Cos[\[Theta][#]], Sin[\[Theta][#]]}) & /@ (yDRoots + \[CurlyEpsilon])]},
     {Black, AbsolutePointSize@5, Point[{\[Rho][a]*{Cos[\[Theta][a]], Sin[\[Theta][a]]}, \[Rho][b]*{Cos[\[Theta][b]], Sin[\[Theta][b]]}}]},
     {Gray, Dashed,Line[{({-100, \[Rho][#]*Sin[\[Theta][#]]}), (\[Rho][#]*{Cos[\[Theta][#]],Sin[\[Theta][#]]})}&/@(yDRoots + \[CurlyEpsilon])]},
     {Gray, Dotted, Line[{{0, 0}, (\[Rho][a]*{Cos[\[Theta][a]],Sin[\[Theta][a]]})}]}}];
pvl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-1, 1}}, AspectRatio -> 1,  ImagePadding -> 20, 
   Epilog -> {{Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@ yRoots]},
     {Gray, Dashed, Line[{{#, 0.66}, {#, 1}} & /@yDRoots]}}]; (* Vertical lines *)
phl = Plot[2, {t, a, b}, Axes -> None, AxesOrigin -> {0, 0}, PlotRange -> {{0, 5.3}, {-0.3, 1}}, AspectRatio -> 1, ImagePadding -> 20, 
  Epilog -> {{Gray, Dashed, Line[{{0.03, y[#]}, {0.9, y[#]}} & /@yDRoots]}}]; (* Horizontal lines *)
Graphics[{Inset[p1, ImageScaled@{.05, 0.52}, {0, 0}, 1], 
  Inset[pvl, ImageScaled@{.05, .31}, {0, 0}, 1], 
  Inset[p2, ImageScaled@{.05, .12}, {0, 0}, 1], 
  Inset[phl, ImageScaled@{.48, .12}, {0, 0}, 1], 
  Inset[p3, ImageScaled@{.77, .12}, {0, 0}, 1]}, ImageSize -> 800, PlotRange -> All]

However, it would be easier if the distance between the images in a GraphicsGrid can be removed as it sets the positions automatically.

Thank you for the interest, and any other solutions are welcome.
bkarpuz