如何在ggplot中将x轴标签设置为beta、gamma、sigma希腊字母
解决ggplot x轴显示希腊字母的问题
问题根源
你当前代码里直接在factor(1:3, labels = c(expression(beta), ...))中用expression()是无效的——factor的标签会被当作普通字符串处理,ggplot不会自动把这些表达式解析成希腊字母。
方法一:用scale_x_discrete开启表达式解析
修改绘图代码,先把x轴因子标签设为"beta"这类字符串,再通过scale_x_discrete开启解析,让ggplot自动将字符串转为希腊字母:
ggplot(x, aes(x = factor(1:3, labels = c("beta", "gamma", "sigma")))) + geom_bar(stat = "identity", aes(y = PCC), colour = "red", fill = "blue", size = 0.5, alpha = 0.5) + scale_x_discrete(parse = TRUE) + # 关键:开启表达式解析 theme(panel.background = element_rect(fill = "white", colour = "white"), panel.grid.major = element_blank(), panel.grid.major.x = element_blank(), axis.line = element_line(linewidth = 0.4, colour = "grey10"), text = element_text(size = 12, family = "calibri"), legend.key = element_rect(fill = "white", colour = "white"), legend.position = "top", strip.text = element_text(size = 12, colour = 'white')) + ylab("敏感性指数") + xlab("参数") + labs(title = "敏感性分析")
注:把aes(y = y)改成aes(y = PCC)更清晰,因为pcc返回对象的主敏感性指数存在PCC字段,避免变量名冲突。
方法二:直接使用Unicode希腊字母
如果不想用表达式解析,也可以直接用Unicode编码的希腊字母作为标签,直观且无需额外解析:
ggplot(x, aes(x = factor(1:3, labels = c("β", "γ", "σ")))) + geom_bar(stat = "identity", aes(y = PCC), colour = "red", fill = "blue", size = 0.5, alpha = 0.5) + theme(panel.background = element_rect(fill = "white", colour = "white"), panel.grid.major = element_blank(), panel.grid.major.x = element_blank(), axis.line = element_line(linewidth = 0.4, colour = "grey10"), text = element_text(size = 12, family = "calibri"), legend.key = element_rect(fill = "white", colour = "white"), legend.position = "top", strip.text = element_text(size = 12, colour = 'white')) + ylab("敏感性指数") + xlab("参数") + labs(title = "敏感性分析")
内容的提问来源于stack exchange,提问作者Jaydy
相关产品推荐
相关产品推荐

