我已经阅读了有关如何在图表标题中创建斜体字的帖子,但它似乎对我不起作用。
#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
}
我收到错误说:
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"
有人可以指出我做错了吗?
答案 0 :(得分:7)
您传递给main
的论点需要进行一些更改。
要使用R的plotmath特殊内容(例如italic()
之类的内容),它应该是表达式对象而不是字符串。这意味着做这样的事情:
main = expression(paste("Length-Freq of", italic("E. coruscans"), "by Gear"))
而不是:
main = paste("Length-Freq of", italic("E. coruscans"), "by Gear")
此外,您希望将i
的值而不是名称设为斜体,但如果只输入{{1} },格子会将italic(i)
的名称呈现为每个物种的一个小斜体“ i ”。使用i
或bquote()
代替substitute()
的值,如下所示:
i