一年一度的高考大日子又到了,
在这里,浩彬老撕先预祝各位考生都能取得满意的成绩。
每年的高考都会产生很多的爆点,引起很多的话题,
今年也不例外,而且再创新高,诞生了高考界的第一网红:
正好,R的文字云包“wordcloud2”也发布了,于是浩彬老撕也弄了一个高考文字云。
你说要图案选择?咱有!支持中文,那是必须的!多少代码?一行足矣!
Excuse me?!
就这么简单?
就是这么简单!
如下是完整实现教程:
-
数据
数据要求非常简单,只需要两列分别是:词语,频率
WordFreq
高考100
满分33
作文39
头发42
网红44
详细数据可以通过如下链接下载:
链接: http://pan.baidu.com/s/1jI4gEnc 密码: uids
2.环境要求:
(1)https://cran.r-project.org/上下载对应系统及版本的R软件(版本要求至少3.1.0),环境为win64的R;
(2)此次用到的包为“wordcloud2”,github上,,因为我们需要先安装“devtools”,再安装“wordcloud2”,代码如下:
install.packages('devtools')
devtools::install_github("lchiffon/wordcloud2")
3实现过程:
(1)高考文字云
data <- read.csv('c:/data.csv', sep="," ,header = T)
#读取原始数据
data
#检查数据,查看是否存在乱码的情况
wordcloud2(data, size = 1, shape='star',color = 'random-dark',
backgroundColor = "white",fontFamily = "微软雅黑")
#绘制文字云,其中data就是我们读取的数据,size是对应文字大小,shape是绘制形状
就是这么简单就实现了!
另外,wordcloud2包里面打包了两份数据,分别为:
英文的:demoFreq
中文的:demoFreqC
(2)英文Demo:
我们利用Sample数据,绘制一个心形图:
wordcloud2(demoFreq, size = 1,color = 'random-light',
shape = 'cardioid',backgroundColor = "snow")
在这里例子里面,我们修改了字体颜色,并把图案形状为心型,最后加上背景颜色。
是不是有种很温馨的感觉,简直是可视化必备利器!
(3)中文Demo
wordcloud2(demoFreqC, size = 1,color = 'random-light',
backgroundColor = "gray", fontWeight='bold',fontFamily = "微软雅黑",
minRotation = -pi/3, maxRotation = pi/3,rotateRatio = 0.8)
在上面例子,我们重新设定了字体为粗体,字体旋转角度在正负60度之间,旋转比例为80%。
4.wordcloud2函数说明
wordcloud2(data, size = 1, minSize = 0, gridSize = 0,
fontFamily = NULL, fontWeight = 'normal',
color = 'random-dark', backgroundColor = "white",
minRotation = -pi/4, maxRotation = pi/4, rotateRatio = 0.4,
shape = 'circle', ellipticity = 0.65, widgetsize = NULL)
常用参数:
(1)data:词云生成数据,包含具体词语以及频率;
(2)size:字体大小,默认为1,一般来说该值越小,生成的形状轮廓越明显;
(3)fontFamily:字体,如‘微软雅黑’;
(4)fontWeight:字体粗细,包含‘normal’,‘bold’以及‘600’;;
(5)color:字体颜色,可以选择‘random-dark’以及‘random-light’,其实就是颜色色系;
(6)backgroundColor:背景颜色,支持R语言中的常用颜色,如‘gray’,‘blcak’,但是还支持不了更加具体的颜色选择,如‘gray20’;
(7)minRontatin与maxRontatin:字体旋转角度范围的最小值以及最大值,选定后,字体会在该范围内随机旋转;
(8)rotationRation:字体旋转比例,如设定为1,则全部词语都会发生旋转;
(9)shape:词云形状选择,默认是‘circle’,即圆形。还可以选择‘cardioid’(苹果形或心形),‘star’(星形),‘diamond’(钻石),‘triangle-forward’(三角形),‘triangle’(三角形),‘pentagon’(五边形);
这里特别鸣谢wordcolud2的R包作者:郎大为Chiffon
原文地址:https://ask.hellobi.com/blog/wetalkdata/4092