You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何R-Shiny中使用expression命令无法在绘图标题显示希腊字母?

问题:Shiny Server部署后Base-R绘图希腊字母α不显示

本地运行以下R代码时,绘图标题中的希腊字母α可正常显示:

require(shiny)
ui <- fluidPage(mainPanel(plotOutput(outputId="Plot")))
server <- function(input, output, session){
output$Plot <- renderPlot({plot(0, 0, main=expression(alpha))})
}
shinyApp(ui=ui, server=server)

但部署到Shiny Server后,标题中的α完全不显示,仅使用Base-R绘图,未使用ggplot。


解决思路
  • 检查服务器字体支持:Shiny Server所在系统可能缺少能渲染希腊字母的字体。Debian/Ubuntu系统可执行命令sudo apt install fonts-lmodern安装Latin Modern字体,CentOS/RHEL系统用sudo yum install lmodern,完成后重启Shiny Server。
  • 显式指定绘图字体:在plot函数中通过family参数指定支持希腊字母的字体,例如:
plot(0, 0, main=expression(alpha), family="LM Roman 10")

若服务器安装了Arial Unicode MS,也可指定该字体。

  • 用Unicode字符替代expression:直接使用Unicode的α字符代替expression语法,避免表达式渲染问题,代码修改为:
plot(0, 0, main="α")
  • 修正系统locale设置:确保服务器的字符编码locale正确,可在R脚本开头添加:
Sys.setlocale("LC_CTYPE", "en_US.UTF-8")

或在Shiny Server配置文件中配置对应环境变量。


内容的提问来源于stack exchange,提问作者Marcel Steiner-Curtis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:33:12