Special characters and superscripts on plot axis titles

后端 未结 2 2165
滥情空心
滥情空心 2020-12-04 16:52

I am trying to make a y-axis title with both a special character and a superscript. I am able to do this, but I want the closing parentheses not to be superscripted. And t

相关标签:
2条回答
  • 2020-12-04 17:10

    This solves the problem of the super-scripted closing parenthesis:

    # reproducible data
    plates <- data.frame(WatexCl = rnorm(100), ConcuM = rnorm(100), Depth = rnorm(100))
    
    # alter the default plot margins so the 
    # superscript in the y-axis label is completely displayed
    par(mar=c(5,5,4,2))
    
    # draw the plot
    plot(WatexCl ~ ConcuM, data = plates,
         col = as.numeric(1), 
         pch = as.numeric(Depth), 
         xlab = bquote("Concentration Cl ("*mu~"moles/g dry wt)"), 
         ylab = bquote("Average Conc of S- on plates ("~mu~"Moles/cm"^"2"*")"))
    

    enter image description here

    0 讨论(0)
  • 2020-12-04 17:15

    The one thing that often users fail to grasp is that you invariably don't need to quote strings and paste them together when used in an expression for a plot label. It is usually simpler to use the layout tools directly (e.g. ~ and *). For example:

    df <- data.frame(y = rnorm(100), x = rnorm(100))
    
    plot(y ~ x, data = df,
         ylab = expression(Average ~ Conc ~ of ~ S- ~ on ~ plates ~ 
                           (mu ~ Moles ~ cm^{-2} ~ dry ~ wt)),
         xlab = expression(Concentration ~ Cl ~ (mu ~ moles ~ g^{-1} ~ dry ~ wt)))
    

    Alternatively, you can include strings for longer sections of text; in this case it is arguably easier to do:

    plot(y ~ x, data = df,
         ylab = expression("Average Conc of S- on plates" ~
                             (mu ~ moles ~ cm^{-2} ~ "dry wt")),
         xlab = expression("Concentration Cl" ~ (mu ~ moles ~ g^{-1} ~ "dry wt")))
    

    but note there is no need to paste strings and other features here.

    Both produce:

    enter image description here

    Note the issue plotmath has with the superscript 2. You may wish to add some extra space for the y-axis margin to accommodate that:

    op <- par(mar = c(5,4.5,4,2) + 0.1)
    plot(y ~ x, data = df,
         ylab = expression("Average Conc of S- on plates" ~
                              (mu ~ moles ~ cm^{-2} ~ "dry wt")),
         xlab = expression("Concentration Cl" ~ (mu ~ moles ~ g^{-1} ~ "dry wt")))
    par(op)
    

    producing

    enter image description here

    0 讨论(0)
提交回复
热议问题