1
$\begingroup$

I use the code from an answer to get two pictures:

F[z_] := z^2;
t1 = 0; t2 = Pi/3; dt = (t2 - t1)/10;
r1 = 1; r2 = 3; dr = (r2 - r1)/10;

GraphicsRow[
 With[{z = r Exp[I t], col = Black},
    Show[
     ParametricPlot[
      ReIm@#[z], {r, r1, r2}, {t, t1, t2},
      Mesh -> 9,
      MeshShading -> ArrayPad[
        {{None, col}, {col, col}, {None, col}}, {{5, 2}, {4, 4}}, None
        ],
      Frame -> False,
      AxesOrigin -> {0, 0},
      PlotRange -> {{-6, 10}, {-1.1, 10}},
      ImageSize -> Medium,
      AxesStyle -> Opacity[0.1]],
     Graphics[{
       {Blue, Circle[], Text[0, {-0.2, -0.3}]},
       {Blue, Arrow[{{0, 0}, {10, 0}}]},
       {Blue, Arrow[{{0, 0}, 10 ReIm@#[ Exp[I Pi/3]]}]}
       }]
     ]
    ] & /@ {Identity, F}]

enter image description here

Can I add different texts to these two pictures using the If function?

[Added: To clarify my question, I'd like to add the angle symbol \[Theta] to the first figure and 2\[Theta] to the second one. Once I can do this, I'm expecting that I will be able to add other different stuffs to these two figures.]


I'm expecting something like If[#==Identity, Text[\[Theta], {-0.2, -0.3},[]], but I don't know the correct syntax: #==Indentity does not work.

$\endgroup$
  • 1
    $\begingroup$ Try slipping this into your Graphics command: {Red, Text[ If[TrueQ[# == Identity], "Identity", "Not identity"], {1, 2}]} $\endgroup$ – LouisB Sep 23 '17 at 23:11
  • $\begingroup$ Why exactly is the If[] needed? GraphicsRow[With[(* blah *), Show[(* blub *), PlotLabel -> #]] & /@ {Identity, F}]. $\endgroup$ – J. M.'s technical difficulties Sep 23 '17 at 23:12
  • $\begingroup$ @J.M.: I am trying to do different things to those two figures, not only labels. $\endgroup$ – Jack Sep 23 '17 at 23:30
  • $\begingroup$ "add different texts to these two pictures" sounds confusing, then. What output were you expecting, then? $\endgroup$ – J. M.'s technical difficulties Sep 23 '17 at 23:43
  • $\begingroup$ @J.M.: yes indeed. I shall edit my question now. Thanks for the comment. $\endgroup$ – Jack Sep 23 '17 at 23:44
1
$\begingroup$

Thanks to LouisB's comment, I can do it with replacing the Graphics[] in the code as

Graphics[{
  {Blue, Circle[], {FontSize -> 12, 
    Text[If[TrueQ[# == Identity], "\[Theta]", 
      "2\[Theta]"], {.44, .25}]}},
  {Blue, {FontSize -> 16, 
    Text[If[TrueQ[# == Identity], "\[Infinity]", ""], {10.5, 0}]}},
  {Blue, {FontSize -> 16, 
    Text[If[TrueQ[# == Identity], "\[Infinity]", ""], 
     10.5 ReIm@#[ Exp[I Pi/3]]]}},
  {Blue, Arrow[{{0, 0}, {10, 0}}]},
  {Blue, Arrow[{{0, 0}, 10 ReIm@#[ Exp[I Pi/3]]}]}
  }]

enter image description here

| improve this answer | |
$\endgroup$
  • 2
    $\begingroup$ Instead of TrueQ[# == Identity], use # === Identity (or even MatchQ[#, Identity]); == is intended for mathematical equality, and so does not need to evaluate at once, while === is a true comparison operator. $\endgroup$ – J. M.'s technical difficulties Sep 23 '17 at 23:46
  • $\begingroup$ Thanks for this! I'm assuming # === Identity would be faster than TrueQ[# == Identity]? $\endgroup$ – Jack Sep 23 '17 at 23:58
  • 2
    $\begingroup$ ...and less complicated, and using the function intended for that purpose. $\endgroup$ – J. M.'s technical difficulties Sep 24 '17 at 0:30

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.