画图时的中文乱码问题
我这是Mac Yousemite 10.10.5,在两个地方遇到了中文乱码
1、使用wordcloud包绘制中文标签云时。
library(wordcloud)mydata <- read.csv('word-count.txt',header=T,stringsAsFactors=F)jpeg(filename='wordcloud.jpg', width=800,height=800,units='px')mycolor <- colorRampPalette(c("gray", "red"))(200)par(family='STKaiti')#解决方式是加上这一句。
关于详细的字体名称,能够通过这个命令查看:fc-list :lang=zh-cn
wordcloud(mydata$name,mydata$count,c(6,0.8),random.order=FALSE,color=mycolor) dev.off()
2、使用igraph绘制社交关系图时
library(igraph)#读取数据,注意编码格式是utf-8singer <- read.csv('singers.txt', head=T,fileEncoding='UTF-8',encoding='UTF-8',stringsAsFactors=F)#载入数据框#g <- graph_from_data_frame(singer,directed=TRUE)g <- graph.data.frame(singer,directed=TRUE)#生成图片,大小是800*800pxjpeg(filename='singers.jpg',width=800,height=800,units='px')par(family='STKaiti')#这里设置main属性的中文字体。以免其出现中文乱码。plot(g, vertex.size=5, #节点大小 layout=layout.fruchterman.reingold, #布局方式 vertex.shape='none', #不带边框 vertex.label.cex=1.5, #节点字体大小 vertex.label.color='red', #节点字体颜色 vertex.label.font=4, main='歌星关系图谱', vertex.label.family='STKaiti',#这里设置每一个vertex节点的中文字体,以免其出现中文乱码。 edge.arrow.size=0.7) #连线的箭头的大小#关闭图形设备。将缓冲区中的数据写入文件dev.off()
3、读取本地文件时,本地文件务必使用UTF-8存储。
由于R内部的默认编码就是UTF-8