问题由来
- 【R_可视化】使用wordcloud包制作分类词云图一文中,需要将绘图英文字体设为Times New Roman。
- 查阅资料得知,同样用于制作词云图的wordcloud包,其设置英文字体的参数为"fontFamily",示例代码如下。
library(wordcloud2)
wordfreqs <- readxl::read_excel("D:/…….xlsx")
wordcloud2(wordfreqs,
size=0.5, #可更改
fontFamily="Times New Roman",
color="random-dark") #"random-dark"与"random-light"
- 但通过help("comparison.cloud")查到的函数用法资料(如下图),均不涉及字体的设置。难道此使用该函数制图,不支持自定义字体?
![](https://i-blog.csdnimg.cn/blog_migrate/f968c6fe53e5a9be3fc4ed1891a2b573.png)
问题解决
- 仍然是查阅资料、解决问题。主要参考资料:https://cran.r-project.org/web/packages/wordcloud/wordcloud.pdf (wordcloud电子书,搜索关键词“font”,结果如下)
- 直接将vfont命令用于comparison.cloud绘图,发现字体确有改变,指令有效。
![](https://i-blog.csdnimg.cn/blog_migrate/9083d3ec52166cb02b339d3c542cdc4b.png)
family 绘图字体。标准字体是”serif”,”sans”,”mono”,”symbol”。
当然可以指定任何自己已有的字体库。但它是设备依赖的。
英文字体分两类,一种是Serif字体,一种是Sans-Serif字体。
比如Times New Roman是一种Serif字体,Arial是一种Sans-Serif字体。
- 后将“vfont=c("serif",plain)"命令改为“family="serif",发现也可用,问题基本得到解决,即
comparison.cloud(m, scale = c(1.3,1.1), rot.per = 0,random.order=FALSE,family="serif",
colors = c("#CD5C5C","#BC8F8F","#F08080","#FA8072","#FFA07A","#FF4500","#FF6347","#FF7F50","#FF8C00","#F4A460","#CCEEFF","#77DDFF","#33CCFF","#00BBFF","#009FCC","#CCDDFF","#99BBFF","#5599FF","#0066FF","#0044BB"),
title.size=1.3, max.words=2000000 )
反思总结
- 本次问题出现的原因:对R语言不够熟悉。但好在查阅大量资料后,较快地解决了问题。