getting constant text size while using atop function in r









up vote
3
down vote

favorite












Below is a much simpler example of a complicated custom function I have written. In the full-length form of this function,




  • "layer1"corresponds to caption entered by the user,


  • "layer2"
    corresponds to results from a statistical test, and


  • "layer3"
    corresponds to details about the statistical test carried out.

But when all three layers are included in the caption, it looks something like this-





library(ggplot2)

ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot() +
labs(caption = substitute(atop(substitute(
atop("layer1", "layer2")
)
, "layer3")))




Created on 2018-11-09 by the reprex package (v0.2.1)



So I wanted to figure out a way I can keep the text size constant for all three layers. I am actually not sure why the text size automatically changes in this context.



Is there a way I can prevent this from happening?










share|improve this question

























    up vote
    3
    down vote

    favorite












    Below is a much simpler example of a complicated custom function I have written. In the full-length form of this function,




    • "layer1"corresponds to caption entered by the user,


    • "layer2"
      corresponds to results from a statistical test, and


    • "layer3"
      corresponds to details about the statistical test carried out.

    But when all three layers are included in the caption, it looks something like this-





    library(ggplot2)

    ggplot(iris, aes(Species, Sepal.Length)) +
    geom_boxplot() +
    labs(caption = substitute(atop(substitute(
    atop("layer1", "layer2")
    )
    , "layer3")))




    Created on 2018-11-09 by the reprex package (v0.2.1)



    So I wanted to figure out a way I can keep the text size constant for all three layers. I am actually not sure why the text size automatically changes in this context.



    Is there a way I can prevent this from happening?










    share|improve this question























      up vote
      3
      down vote

      favorite









      up vote
      3
      down vote

      favorite











      Below is a much simpler example of a complicated custom function I have written. In the full-length form of this function,




      • "layer1"corresponds to caption entered by the user,


      • "layer2"
        corresponds to results from a statistical test, and


      • "layer3"
        corresponds to details about the statistical test carried out.

      But when all three layers are included in the caption, it looks something like this-





      library(ggplot2)

      ggplot(iris, aes(Species, Sepal.Length)) +
      geom_boxplot() +
      labs(caption = substitute(atop(substitute(
      atop("layer1", "layer2")
      )
      , "layer3")))




      Created on 2018-11-09 by the reprex package (v0.2.1)



      So I wanted to figure out a way I can keep the text size constant for all three layers. I am actually not sure why the text size automatically changes in this context.



      Is there a way I can prevent this from happening?










      share|improve this question













      Below is a much simpler example of a complicated custom function I have written. In the full-length form of this function,




      • "layer1"corresponds to caption entered by the user,


      • "layer2"
        corresponds to results from a statistical test, and


      • "layer3"
        corresponds to details about the statistical test carried out.

      But when all three layers are included in the caption, it looks something like this-





      library(ggplot2)

      ggplot(iris, aes(Species, Sepal.Length)) +
      geom_boxplot() +
      labs(caption = substitute(atop(substitute(
      atop("layer1", "layer2")
      )
      , "layer3")))




      Created on 2018-11-09 by the reprex package (v0.2.1)



      So I wanted to figure out a way I can keep the text size constant for all three layers. I am actually not sure why the text size automatically changes in this context.



      Is there a way I can prevent this from happening?







      r ggplot2 tidyverse plotmath






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked yesterday









      Indrajeet Patil

      1,246212




      1,246212






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          2
          down vote



          accepted










          I'm a little confused about the "substitute" in the plot, but perhaps the following solves the problem:



          ggplot(iris, aes(Species, Sepal.Length)) +
          geom_boxplot() +
          labs(caption = substitute(atop(
          atop(displaystyle("layer1"), displaystyle("layer2")), "layer3")))


          enter image description here






          share|improve this answer




















          • Cool. Wasn't aware of displaystyle(x) and textstyle(x) functions (any reason to prefer the former over the latter?). The behavior I was getting was because plotmath defaults to scriptstyle(x) or scriptscriptstyle(x)?
            – Indrajeet Patil
            yesterday






          • 2




            @IndrajeetPatil, I immediately took displaystyle just because, in LaTeX documents, inline equations are somewhat smaller than display equations, and that's exactly the way to fix it there. Now it looks like textstyle is going to have somewhat less spacing, so you may see what you prefer. I'd guess that the default here is scriptstyle, and if you added, say, atop, it would be scriptscriptstyle.
            – Julius Vainora
            yesterday










          • Thanks. See my second part to the current question: stackoverflow.com/questions/53239765/… Maybe you have some solution for this as well.
            – Indrajeet Patil
            yesterday










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235655%2fgetting-constant-text-size-while-using-atop-function-in-r%23new-answer', 'question_page');

          );

          Post as a guest






























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          2
          down vote



          accepted










          I'm a little confused about the "substitute" in the plot, but perhaps the following solves the problem:



          ggplot(iris, aes(Species, Sepal.Length)) +
          geom_boxplot() +
          labs(caption = substitute(atop(
          atop(displaystyle("layer1"), displaystyle("layer2")), "layer3")))


          enter image description here






          share|improve this answer




















          • Cool. Wasn't aware of displaystyle(x) and textstyle(x) functions (any reason to prefer the former over the latter?). The behavior I was getting was because plotmath defaults to scriptstyle(x) or scriptscriptstyle(x)?
            – Indrajeet Patil
            yesterday






          • 2




            @IndrajeetPatil, I immediately took displaystyle just because, in LaTeX documents, inline equations are somewhat smaller than display equations, and that's exactly the way to fix it there. Now it looks like textstyle is going to have somewhat less spacing, so you may see what you prefer. I'd guess that the default here is scriptstyle, and if you added, say, atop, it would be scriptscriptstyle.
            – Julius Vainora
            yesterday










          • Thanks. See my second part to the current question: stackoverflow.com/questions/53239765/… Maybe you have some solution for this as well.
            – Indrajeet Patil
            yesterday














          up vote
          2
          down vote



          accepted










          I'm a little confused about the "substitute" in the plot, but perhaps the following solves the problem:



          ggplot(iris, aes(Species, Sepal.Length)) +
          geom_boxplot() +
          labs(caption = substitute(atop(
          atop(displaystyle("layer1"), displaystyle("layer2")), "layer3")))


          enter image description here






          share|improve this answer




















          • Cool. Wasn't aware of displaystyle(x) and textstyle(x) functions (any reason to prefer the former over the latter?). The behavior I was getting was because plotmath defaults to scriptstyle(x) or scriptscriptstyle(x)?
            – Indrajeet Patil
            yesterday






          • 2




            @IndrajeetPatil, I immediately took displaystyle just because, in LaTeX documents, inline equations are somewhat smaller than display equations, and that's exactly the way to fix it there. Now it looks like textstyle is going to have somewhat less spacing, so you may see what you prefer. I'd guess that the default here is scriptstyle, and if you added, say, atop, it would be scriptscriptstyle.
            – Julius Vainora
            yesterday










          • Thanks. See my second part to the current question: stackoverflow.com/questions/53239765/… Maybe you have some solution for this as well.
            – Indrajeet Patil
            yesterday












          up vote
          2
          down vote



          accepted







          up vote
          2
          down vote



          accepted






          I'm a little confused about the "substitute" in the plot, but perhaps the following solves the problem:



          ggplot(iris, aes(Species, Sepal.Length)) +
          geom_boxplot() +
          labs(caption = substitute(atop(
          atop(displaystyle("layer1"), displaystyle("layer2")), "layer3")))


          enter image description here






          share|improve this answer












          I'm a little confused about the "substitute" in the plot, but perhaps the following solves the problem:



          ggplot(iris, aes(Species, Sepal.Length)) +
          geom_boxplot() +
          labs(caption = substitute(atop(
          atop(displaystyle("layer1"), displaystyle("layer2")), "layer3")))


          enter image description here







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered yesterday









          Julius Vainora

          26.2k75877




          26.2k75877











          • Cool. Wasn't aware of displaystyle(x) and textstyle(x) functions (any reason to prefer the former over the latter?). The behavior I was getting was because plotmath defaults to scriptstyle(x) or scriptscriptstyle(x)?
            – Indrajeet Patil
            yesterday






          • 2




            @IndrajeetPatil, I immediately took displaystyle just because, in LaTeX documents, inline equations are somewhat smaller than display equations, and that's exactly the way to fix it there. Now it looks like textstyle is going to have somewhat less spacing, so you may see what you prefer. I'd guess that the default here is scriptstyle, and if you added, say, atop, it would be scriptscriptstyle.
            – Julius Vainora
            yesterday










          • Thanks. See my second part to the current question: stackoverflow.com/questions/53239765/… Maybe you have some solution for this as well.
            – Indrajeet Patil
            yesterday
















          • Cool. Wasn't aware of displaystyle(x) and textstyle(x) functions (any reason to prefer the former over the latter?). The behavior I was getting was because plotmath defaults to scriptstyle(x) or scriptscriptstyle(x)?
            – Indrajeet Patil
            yesterday






          • 2




            @IndrajeetPatil, I immediately took displaystyle just because, in LaTeX documents, inline equations are somewhat smaller than display equations, and that's exactly the way to fix it there. Now it looks like textstyle is going to have somewhat less spacing, so you may see what you prefer. I'd guess that the default here is scriptstyle, and if you added, say, atop, it would be scriptscriptstyle.
            – Julius Vainora
            yesterday










          • Thanks. See my second part to the current question: stackoverflow.com/questions/53239765/… Maybe you have some solution for this as well.
            – Indrajeet Patil
            yesterday















          Cool. Wasn't aware of displaystyle(x) and textstyle(x) functions (any reason to prefer the former over the latter?). The behavior I was getting was because plotmath defaults to scriptstyle(x) or scriptscriptstyle(x)?
          – Indrajeet Patil
          yesterday




          Cool. Wasn't aware of displaystyle(x) and textstyle(x) functions (any reason to prefer the former over the latter?). The behavior I was getting was because plotmath defaults to scriptstyle(x) or scriptscriptstyle(x)?
          – Indrajeet Patil
          yesterday




          2




          2




          @IndrajeetPatil, I immediately took displaystyle just because, in LaTeX documents, inline equations are somewhat smaller than display equations, and that's exactly the way to fix it there. Now it looks like textstyle is going to have somewhat less spacing, so you may see what you prefer. I'd guess that the default here is scriptstyle, and if you added, say, atop, it would be scriptscriptstyle.
          – Julius Vainora
          yesterday




          @IndrajeetPatil, I immediately took displaystyle just because, in LaTeX documents, inline equations are somewhat smaller than display equations, and that's exactly the way to fix it there. Now it looks like textstyle is going to have somewhat less spacing, so you may see what you prefer. I'd guess that the default here is scriptstyle, and if you added, say, atop, it would be scriptscriptstyle.
          – Julius Vainora
          yesterday












          Thanks. See my second part to the current question: stackoverflow.com/questions/53239765/… Maybe you have some solution for this as well.
          – Indrajeet Patil
          yesterday




          Thanks. See my second part to the current question: stackoverflow.com/questions/53239765/… Maybe you have some solution for this as well.
          – Indrajeet Patil
          yesterday

















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235655%2fgetting-constant-text-size-while-using-atop-function-in-r%23new-answer', 'question_page');

          );

          Post as a guest














































































          這個網誌中的熱門文章

          How to read a connectionString WITH PROVIDER in .NET Core?

          In R, how to develop a multiplot heatmap.2 figure showing key labels successfully

          Museum of Modern and Contemporary Art of Trento and Rovereto