我想替换以下内容(是的,我已经以TeX格式写在这里,只是为了清楚)
$P_{M1}(\tilde{z}>z) - P_{M0}(\tilde{z}>z)$
绿线的图例条目(cptsdtbehavioralm),以及
$P_{M2}(\tilde{z}>z) - P_{M0}(\tilde{z}>z)$
用于蓝线的图例条目(fullbehavioralmodel)。

这是我生成绘图的代码(我省略了10,000个观测数据集和转换以生成函数Fm0,Fm1和Fm2):

bmp("bias_plot_v4.bmp", width=540, pointsize=10)
ggplot(data.frame(x=c(0,80)),aes(x) ) +
   stat_function(fun=function(x)((1-Fm1(x)) - (1- Fm0(x))), geom="line",
aes(colour="cptsdtbehavioralm"), n=1000) +
   stat_function(fun=function(x)((1-Fm2(x)) - (1- Fm0(x))), geom="line",
aes(colour="fullbehavioralmodel"), n=1000) +
 theme_bw() +
   ylab("Probability") +
 xlab(expression(paste("Security breaches per 3-week spear-phishing campaign ",
italic( (z) )))) +
 theme(aspect.ratio=.618) +
   theme(legend.position=c(0.845,0.8)) +
   theme(legend.key = element_blank()) +
   scale_color_manual(values = c("cptsdtbehavioralm"="green2",
"fullbehavioralmodel" = "blue"), name="Bias")
dev.off()


每当我尝试用数学表达式替换“ cptsdtbehavioralm”和“ fullbehavioralmodel”时,例如为简单起见,expression(P[{M1}])-我遇到以下类型的错误:

Error: unexpected '=' in:
"       theme(legend.key = element_blank()) +
   scale_color_manual(values = c(expression(P[{M1}]))="


我精疲力尽-任何见解或建议都将非常非常欢迎。

最佳答案

这是一个简单的示例,说明如何使用valueslabels来获取我认为想要的内容。

请注意,values将数据中的值映射到您希望使用的颜色,而labels是要显示的标签(因此将表达式放在此处)。

ggplot(data = data.frame(x= c(0,5)),aes(x=x)) +
    stat_function(fun=dnorm,aes(colour = 'red')) +
    stat_function(fun = dexp, aes(colour = 'blue')) +
    scale_colour_manual(values = c('red' = 'red','blue' = 'blue'),name = '',
          labels = expression(P[M1](tilde(z)>0),P[M0](tilde(z)>0)))

10-04 23:22