我正在疯狂地策划完成我的MS。使用mtext
或text
添加解释性文本很容易,添加表达式也很简单,但是当我需要添加它们时,我仍然遇到问题。
plot(1:598,xaxt='n',yaxt='n', type="l")
text(475,200,expression(paste(
" RMSE=Root Mean Squared Error
MAD=Mean Absolute Deviance
Average RMSE=5.78","",m^3/h,"","
","","Average MAD=4.47", "",m^3/h, sep = "")), cex=1)
我的文本和表达式正在运行,但为什么在RMSE = 5.78之后存在较大的差距,为什么在第一个表达式之后文本空间不会缩小?我似乎不明白expression
和paste
是如何协同工作的。我是否被迫为每一行指定单独的x,y?
奖金问题!!我一直在看ggplot2,它会产生一些看起来很流畅的漂亮图形,但许多常见的绘图参数都不同。老实说,我发现学习Matlab更容易。我一直在用cairo
导出我的情节,这使我可以制作一些高分辨率和相当专业的质量图表。我可以用常规绘图功能做我需要的任何事情。我的问题是,如果你想要制作高质量的可发布数据,那么ggplot真的可以更快地绘制,或者它的强度使得快速数字看起来不错?对我来说,当你想要指定很多细节时,ggplot似乎变得同样复杂。
答案 0 :(得分:2)
我认为您可以使用this问题的答案。对于您的情况,例如:
plot(1:598,xaxt='n',yaxt='n', type="l")
my_text <- list( bquote( "RMSE=Root Mean Squared Error" ) ,
bquote( "MAD=Mean Absolute Deviance" ) ,
bquote( paste( "Average RMSE=5.78" , m^3/h) ) ,
bquote( paste( "Average MAD=4.47", m^3/h ) ) )
mtext(side=1,do.call(expression, my_text), line=-1:-4, adj=0)
line
参数将每个bquote
放在一个单独的行(-1到-4)上。您可能需要对adj
和padj
进行一些调整才能获得正确的排名 - 请参阅?mtext
。
对于奖金问题:我更喜欢使用常规绘图功能,因为我发现更容易完全控制这些功能,例如:超出默认颜色和间距。通过一些调整,我也更喜欢基本图形的简单外观到ggplot外观。我为所有科学出版物使用常规绘图功能,从未遇到过问题。
答案 1 :(得分:0)
Ggplot是我首选的软件包,但我是一个新手来处理bquote(),do.call()和expression()。
我创建了基本情节代码的这个小对应物,并希望有人可以解释如何做以实现类似的注释图:
my_text <- list( bquote( "RMSE=Root Mean Squared Error"),
bquote( "MAD=Mean Absolute Deviance"),
bquote( paste( "Average RMSE=5.78")),
bquote( paste( "Average MAD=4.47")))
x <- seq(1:598)
y <- seq(1:598)
df <- as.data.frame(cbind(x,y))
ggplot(df, aes(x=x, y=y)) +
geom_point() +
annotate("text", label = my_text, x=100, y=100)