Can someone please help me to draw the attached figure in Mathematica?
-
1$\begingroup$ Maybe the title should be modified to specify that the figures have arrows as this is the most difficult part I think (and the one that is maybe most useful to the community). Perhaps: " drawing two figures with directed lines specified by arrows" or "drawing two figures with arrows that flow along curves". $\endgroup$– userrandrandCommented Aug 5, 2022 at 0:02
2 Answers
Try e.g.:
cu1 = {Arrow[Line@Table[{x, 1/(x - 1) + 1}, {x, 1.1, 10, .1}]]} ;
cu2 = cu1 /. p : {_, _} -> ReflectionTransform[{1, 0}][p];
cu3 = cu1 /. p : {_, _} -> ReflectionTransform[{0, 1}][p];
cu4 = cu2 /. p : {_, _} -> ReflectionTransform[{0, 1}][p];
Graphics[{Arrowheads[{-.05, -.05}], cu1, cu2, cu3, cu4,
Arrowheads -> {-0.1, 0.1}, Thickness[0.01],
Arrow[{{0, 11}, {0, -11}}]}]
Graphics[{Arrowheads[{.05, .05}], cu1, cu2, cu3, cu4,
Arrowheads -> {0.1, -0.1}, Thickness[0.01],
Arrow[{{0, 10}, {0, -10}}]}]
Edits: Show[plot1,plot2]->Plot[{func1,func2}], Row->GraphicsRow
You might find better answers from people here that know how to use Graphics better than me but a semi-manual approach is possible with drawing tools in Mathematica.
Step 1:
Plot[{1/x,-1/x}, {x, -1, 1}, Axes -> False, PlotStyle -> Black]
Step 2:
Use line and arrows in drawing tools by right-clicking the plot and then clicking on drawing tools.
output:
Step 3:
Do similar manipulations for the other plot
Step 4:
copy each plot (right click copy graphics), stack them side by side and use :
GraphicsRow[{plot1,plot2}]
I personally used Inkscape when I wanted to modify plots.
-
2$\begingroup$ Your first step can be simplified to
Plot[{1/x, -1/x}, {x, -1, 1}, Axes -> False, PlotStyle -> Black]
$\endgroup$ Commented Aug 4, 2022 at 22:14 -
$\begingroup$ @BobHanlon Thank you. I will edit the code $\endgroup$ Commented Aug 4, 2022 at 22:28