需求:在不使用wordcloud第三方包的情况下,如何使用matplotlib实现词云图的绘制?
当前进度如下:
一、实现了简单的分词
二、实现了词数统计
三、实现了使用scatter散点图将词、数量呈现在了同一张画布中
未实现的地方:
词云图如何像当前wordcloud中那样呈现出来,当前呈现出来的结果看起来会有一些死板,而且显示不符合当前的视图逻辑,也许是先入为主观念造成的,但是直接使用散点图成图的结果看起来确实有一些不够直接,否则直接绘制散点图即可,或者绘制直方图即可,就没有必要绘制词云图。从功能上讲,或者说从表达信息上讲,词云图相对于直方图而言,确实是有信息缺失,但是也不能否认词云图本身直观的特点,因为大多数看词云图的人,可能会希望更直接一些。所以就还是可以再深入研究一下。基础的做图方法其实差不了太多,尤其是图来讲,永远抓住点线面即可,因为其核心就还是由这三个维度所构成。
world = open('./temp.txt','r',encoding='utf-8').read().split('\n') # print(world) world_num = {} for i in range(len(world)): if world[i] not in world_num.keys(): world_num[world[i]] = 1 else: world_num[world[i]] += 1 x = [i for i in range(1,len(world_num)+1)] y = list(world_num.values()) num = list(world_num.keys()) plt.scatter(x,y,s=[k*100 for k in y]) for a,b,c in zip(x,y,num): plt.text(a,b,c) plt.ylim(1,10) plt.show()
上述代码成图如下: