格子图标题中的斜体

Ben*_*Ben 1 r italics lattice

我已经阅读了有关如何在图表标题中创建斜体字的帖子,但它似乎对我不起作用.

#create a list of species
sp <- c("Etelis coruscans","Etelis carbunculus","Pristipomoides sieboldii","Pristipomoides filamentosus","Pristipomoides zonatus","Epinephelus quernus","Aphareus rutilans")

#plot hisotgrams for each spp in 1cm bins
for (i in sp){
    BIN_WIDTH <- 1 #desired bin width
    print(histogram(~ Length..cm. | Method, #create and print the histogram and save to variable "graph"
    data = hist.data[hist.data$Scientific_name == i,], 
    nint = (max(hist.data$Length..cm.) - min(hist.data$Length..cm.)+1)/BIN_WIDTH,
    layout = c(1,2),
    main = paste("Length-Frequency of", italic(i), "by Gear"), sep = " ",
    xlab = "Length (cm)"))

    #save histogram to PNG file
    quartz.save(paste("*Length-Frequency of", i, "by method.png", sep = " "), type = "png")
    dev.off() #close the graphics diver
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说:

Error in print(histogram(~Length..cm. | Method, data = hist.data[hist.data$Scientific_name ==  : 
  error in evaluating the argument 'x' in selecting a method for function 'print': Error in paste(italic("Length-Frequency of", i, "by Gear")) : 
  could not find function "italic"
Run Code Online (Sandbox Code Playgroud)

有人可以指出我做错了吗?

Jos*_*ien 8

您传递的论点main需要进行一些更改.

  • 要使用R的plotmath特殊字母(例如类似的东西italic()),它应该是表达式对象而不是字符串.这意味着做这样的事情:

    main = expression(paste("Length-Freq of", italic("E. coruscans"), "by Gear"))
    
    Run Code Online (Sandbox Code Playgroud)

    而不是这个:

    main = paste("Length-Freq of", italic("E. coruscans"), "by Gear")
    
    Run Code Online (Sandbox Code Playgroud)
  • 另外,你想要斜体i价值而不是它的名字,但是如果你只是打字italic(i),格子会将每个物种i的名字渲染成一个小斜体" i ".使用bquote()substitute()代替i's值,如下所示:

    i <- "E. coruscans"
    xyplot(1:10~1:10,
        main = substitute(expr = expression(paste("Species name: ", italic(i))), 
                          env = list(i=i)))
    
    Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 完善!这是最终的工作代码:main = replace(expr = expression(paste(“ Length-Frequency of”,斜体(i),“ by Gear”)),env = list(i = i)), (2认同)