代码之家  ›  专栏  ›  技术社区  ›  kl-higgins

在文本中使用上标并在R中粘贴(用于多个值的向量)

  •  3
  • kl-higgins  · 技术社区  · 6 年前

    我希望在图例中有上标的标签。此外,我想用粘贴函数构造标签。我已经找到了一个图例,它使用我的值向量 paste 。我还使用了 expression 获取上标。但我不能同时使用它们。

    以下是我的尝试:

    带有图例的绘图成功地基于值向量绘制了三个图例项,但图例中没有上标。

    #set-up
    size=c(50, 100, 150)
    paste(size, "km^2", sep=" ")
    #output: paste function works
    # "50 km^2"  "100 km^2" "150 km^2"
    
    #plot sample graph
    plot(x=c(1:10)*100, y=c(1:10)*10, col="red")
    points(x=c(8:17)*50, y=c(1:10)*7, col="green")
    points(x=c(8:17)*50, y=c(1:10)*12, col="blue")
    #legend
    legend(x = 'topleft', 
           legend = paste(size, "km^2", sep=" "),
           col = c("red", "green", "blue"), pch=19,bty = 'n', xjust = 1, cex=0.8)
    

    在这里,我可以在图表上打印上标,但不需要粘贴。

    #print with superscript
    mtext(line=-4,adj=0,expression('km'^'2'*' size '))
    

    失败的图形

    enter image description here

    1 回复  |  直到 4 年前
        1
  •  4
  •   eipi10    6 年前

    可以使用创建表达式字符串的向量 paste 然后 parse 他们

    plot(x=c(1:10)*100, y=c(1:10)*10, col="red")
    points(x=c(8:17)*50, y=c(1:10)*7, col="green")
    points(x=c(8:17)*50, y=c(1:10)*12, col="blue")
    
    #legend
    legend(x = 'topleft', 
           legend = parse(text=paste(size, "*km^2~size")),
           col = c("red", "green", "blue"), pch=19, bty = 'n', xjust = 1, cex=0.8)
    

    enter image description here