centos7 中rstudio-server画图中文显示问题

2017/08/18

Categories: R Tags: 乱码 画图 配置 plot

关于centos 7中rstudio-server画图中文不显示问题整理

vi /etc/locale.conf

LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:zh_CN.utf-8:en_US.UTF-8:en_US:en"
SYSFONT="Microsoft YaHei"

# LANG变量,设置系统语言。
# SUPPORTED变量决定系统支持的语言,即系统能够显示的语言。
# SYSFONT变量表示系统字体。

reboot #需要重启后生效
  fc-list :lang=zh

如果查询为空就需安装中文字体

安装部分中文字体后的查询结果如下

  fc-list :lang=zh

  # 微软雅黑:msyh.ttc 对应字体名: 微软雅黑, Microsoft YaHei,两个命名都支持
  /usr/share/fonts/win/msyh.ttc: Microsoft YaHei UI:style=Regular,Normal,obyčejné,Standard,Κανονικά,No
  rmaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
  /usr/share/fonts/win/simsun.ttc: 宋体,SimSun:style=常规,Regular
  /usr/share/fonts/win/msyh.ttc: 微软雅黑,Microsoft YaHei:style=Regular,Normal,obyčejné,Standard,Κανον
  ικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
  /usr/share/fonts/win/simsun.ttc: 新宋体,NSimSun:style=常规,Regular
  yum install -y fontconfig mkfontscale
  #1) Windows下的ttf字体与GNOME是兼容的!因而可以将C:\Windows\Fonts下的字体打包。
  #2)在/usr/share/fonts目录下建立一个子目录,例如win,命令如下:
  mkdir /usr/share/fonts/win
  #3) 将上传的字体解压至/usr/share/fonts/win目录
  #4) 建立字体索引信息,更新字体缓存:
  cd /usr/share/fonts/win
  mkfontscale
  mkfontdir
  fc-cache
  #至此,字体已经安装完毕!
  #5) 重启系统,实测只需要重启对应的应用即可
  reboot

同样centos7.3微软云默认已安装仿宋中文字体,而阿里云无任何中文字体

  par(family='Microsoft YaHei') #par(family='微软雅黑')中英文名称都支持
  plot(rnorm(10), main = '中文')
  par(family='NSimSun')
  plot(rnorm(10), main = '中文')

  #ggplot2 上述在par中指定family对ggplot2不起作用,需要按以下重新指定(同上)
  library(ggplot2)
  p <- ggplot(mpg, aes(class, hwy))
  p + geom_boxplot() + ggtitle("微软雅黑") +
    theme(text=element_text(size=16,  family="微软雅黑"))

Rplot02

注:安装多个中文字体后,即是在/etc/locale.conf设置SYSFONT="Microsoft YaHei",R画图时中文默认字体也一定是Microsoft YaHei

  # sudo yum install libXt-devel
  library(Cairo)
  CairoPDF("test.pdf")
  par(family = "simsun")
  plot(3, 3, type = "n", main = "五角星")
  points(3, 3, pch = "☆", cex = 2, col = "blue")
  dev.off()

显示效果与具体AI有关