R_U*_*ser 4 formatting plot r legend
我生成以下图例:
legend(
"bottomleft"
, legend=c(
expression(bold("Long:" ~ (w==10^2 ~ ";" ~ h==10^5)))
, expression(q[c] == 0.00 ~ ";" ~ beta == 0)
, expression(q[c] == 0.05 ~ ";" ~ beta == 2)
, expression(q[c] == 0.10 ~ ";" ~ beta == 10)
, expression(q[c] == 0.20 ~ ";" ~ beta == 10)
, expression(q[c] == 0.40 ~ ";" ~ beta == 10)
, expression(bold("Wide:" ~ (w==10^3 ~ ";" ~ h==10^3)))
, expression(q[c] == 0.00 ~ ";" ~ beta == 0)
, expression(q[c] == 0.05 ~ ";" ~ beta == 2)
, expression(q[c] == 0.10 ~ ";" ~ beta == 10)
, expression(q[c] == 0.20 ~ ";" ~ beta == 10)
, expression(q[c] == 0.40 ~ ";" ~ beta == 10)
)
, col=c("n", 1, 2, 3, 4, 5, -1, 1, 2, 3, 4, 5)
, lty=c(F, 1, 1, 1, 1, 1, -1, 2, 2, 2, 2, 2)
, cex=.65
)
Run Code Online (Sandbox Code Playgroud)
这给了我:

有一个标题更好,它也跨越"线+点"样本区域:

我怎么能意识到这一点?(我试图设置n或FALSE在lty-section中,但那不起作用,......).我也没有调整qc和 - 值beta,但这是一个不同的故事,......
使用@DWin提出的解决方法:
设置示例图:
plot(1:10,type="n")
Run Code Online (Sandbox Code Playgroud)
保存图例并phantom隐藏要手动编写的标题
saveleg <- legend(
"bottomleft"
, legend=c(
expression(phantom(bold("Long:" ~ (w==10^2 ~ ";" ~ h==10^5))))
, expression(q[c] == 0.00 ~ ";" ~ beta == 0)
, expression(q[c] == 0.05 ~ ";" ~ beta == 2)
, expression(q[c] == 0.10 ~ ";" ~ beta == 10)
, expression(q[c] == 0.20 ~ ";" ~ beta == 10)
, expression(q[c] == 0.40 ~ ";" ~ beta == 10)
, expression(phantom(bold("Wide:" ~ (w==10^3 ~ ";" ~ h==10^3))))
, expression(q[c] == 0.00 ~ ";" ~ beta == 0)
, expression(q[c] == 0.05 ~ ";" ~ beta == 2)
, expression(q[c] == 0.10 ~ ";" ~ beta == 10)
, expression(q[c] == 0.20 ~ ";" ~ beta == 10)
, expression(q[c] == 0.40 ~ ";" ~ beta == 10)
)
, col=c("n", 1, 2, 3, 4, 5, -1, 1, 2, 3, 4, 5)
, lty=c(F, 1, 1, 1, 1, 1, -1, 2, 2, 2, 2, 2)
, cex=.65
, trace=TRUE
)
Run Code Online (Sandbox Code Playgroud)
然后text使用新指定的x轴值从已保存的图例中获取要重新绘制的两位的y 轴值.
text(
c(0.6,0.6),
saveleg$text$y[c(1,7)],
c(
expression(bold("Long:" ~ (w==10^2 ~ ";" ~ h==10^5))),
expression(bold("Wide:" ~ (w==10^3 ~ ";" ~ h==10^3)))
),
cex=0.65,
pos=4
)
Run Code Online (Sandbox Code Playgroud)
结果:
