关于wordclou的一些简单操作
详细讲解一下怎么用python的三方库wordcloud制作一个关于歌曲《Vincent》的歌词,有特别背景的云词效果,如图所示:

首先的先准备好一张背景图,为了云词效果,可以实现修改一下,为了方便识别:

然后就是歌曲《Vincent》的txt文档,最好将他们放在一起(可以不用写路径),
如果需要输入路径,一定不能有中文!!会无法识别的
然后就直接上代码:
# -*- coding: utf-8 -*-
# @Time : 2018/7/27 18:20
# @Author : wjh
# @File : dpcq_yunci.py
with open('Vincent.txt', 'w', encoding='utf-8') as f:
f.write('''vincent—Starry night Starry starry night
paint your palette blue and grey
look out on a summer's day
with eyes that know the darkness in my soul Shadows on the hills
sketch the trees and the daffodils
catch the breeze and the winter chills
in colors on the snowy linen land And now I understand
what you tried to say to me
and how you suffered for your sanity
and how you tried to set them free
They would not listen
they did not know how
perhaps they'll listen now ''') import os
from wordcloud import WordCloud
from matplotlib import pyplot as plt
from PIL import Image
import numpy as np # 把图片变成矩阵的形式
mask = np.array(
Image.open(
os.path.join(
os.path.dirname(__file__),'景甜-(背景纯).png'))) # 注意修改自己图片的名字 text = open('Vincent.txt', encoding='utf-8').read()
font = 'D:\Python\wordcloud\Hiragino Sans GB.ttc' # 路径不能有中文! wd = WordCloud(font_path=font, # 解决显示口字型乱码问题,
# 可进入D:\Python\wordcloud\Hiragino Sans GB.ttc
# max_font_size=50, #最大字体设置
# max_words=400, # 最大词数
width=800, # 画布宽度
height=400, # 画布高度
margin=1, # 字体之间宽度
mask=mask, # 以该参数值作图绘制词云,
# 这个参数存在时,width和height会被忽略
background_color='black', # 背景颜色
random_state=42, #设置有多少种随机生成状态,即有多少种配色方案
)
wd1 = wd.generate(text) # 将图片以“ceshi.png”文件保存
wd1.to_file('test.png')
# 开始绘制云图
plt.figure()
# 操作:加图片小标题
plt.title('Vincent 云词') # 中文会乱码
# 操作:去掉x,y轴数值
plt.axis('off')
# 操作:显示图片
plt.imshow(wd)
# 展示给用户
plt.show()
编辑器里面显示如图:

代码中关于font的路径文件,是为了显示中文文字,比如用赵雷的《彩虹下面》,用的python标志做的云词图片:

字体包:
关于wordclou的一些简单操作的更多相关文章
- x01.MagicCube: 简单操作
看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- GitHub学习心得之 简单操作
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...
- Linq对XML的简单操作
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- Linux 中 Vi 编辑器的简单操作
Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi filename //打开或新 ...
- python(pymysql)之mysql简单操作
一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...
- ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作
问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ...
- ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作
1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其 ...
- C#反射技术的简单操作(读取和设置类的属性)
public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type ...
随机推荐
- bzoj1805: [Ioi2007]Sail 船帆
可以发现旗杆的顺序是没有用的,对于每列,它的答案是它的最大值mx*(mx+1)/2 高度由小到大排序旗杆,问题可以转化为在前h行选k个最小的值 考虑激情splay乱搞(我只会splay......) ...
- [Swift通天遁地]八、媒体与动画-(14)使用TextKit快速实现文章的分栏效果
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 安科 OJ 1054 排队买票 (递归,排列组合)
时间限制:1 s 空间限制:128 M 题目描述 有M个小孩到公园玩,门票是1元.其中N个小孩带的钱为1元,K个小孩带的钱为2元.售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱 ...
- Ubuntu中安装部署Intel CS WebRTC
1环境要求 组件 版本要求 OS CentOS* 7.4, Ubuntu 14.04/16.04 LTS Node 8.11.* (推荐8.11.1) MongoDB 2.4.9 Boost 1.65 ...
- 如何获取select控件的option值和Value?
案例: <select id="paId" class="text3"> <option value=& ...
- CSS怎样改变行内样式(通过外部级联样式表) css !important用法CSS样式使用优先级判断
CSS样式优先级 行内>内部>外部 使用!important的css定义是拥有最高的优先级的.只是在ie6下出了一点小的bug,注意书写方式一般可以轻松避开的. CSS中的!importa ...
- Paint、Canvas
1.Canvas类 public class Canvas { public static final int ALL_SAVE_FLAG = 31; /** @deprecated */ @Depr ...
- CSS——层叠性
层叠性:浏览器渲染是从上而下的,当多个样式作用于同一个(同一类)标签时,样式发生了冲突,总是执行后边的代码(后边代码层叠前边的代码).和标签调用选择器的顺序没有关系. <!DOCTYPE htm ...
- 扩增子图表解读3热图:差异菌、OTU及功能
热图是使用颜色来展示数值矩阵的图形.通常还会结合行.列的聚类分析,以表达实验数据多方面的结果. 热图在生物学领域应用广泛,尤其在高通量测序的结果展示中很流行,如样品-基因表达,样品-OTU相对丰度矩 ...
- Vue中this.$router.push参数获取(通过路由传参)【路由跳转的方法】
传递参数的方法: 1.Params 由于动态路由也是传递params的,所以在 this.$router.push() 方法中 path不能和params一起使用,否则params将无效.需要用nam ...