十分钟利用Python制作属于你自己的个性logo


Posted in Python onMay 07, 2018

前言

词云的使用相信大家已经不陌生了,使用很简单,直接调用wordcloud包就可以了。它的主要功能是根据文本词汇和词汇频率生成图片,从中可以直观的看出各个词汇所占比重。

之前我们也介绍过一篇关于Python制作词云的方法,需要的朋友可以参考这篇文章:https://3water.com/article/132037.htm

最近正好想做一个人的logo,于是乎决定使用词云来制作完成。

wordcloud安装

pip install wordcloud

使用 pip 安装你肯定会遇到一个坑,安装过程中可能会报错,提示你安装 Microsoft Visual C++ 14.0,但是这个安装过程很耗时。

有另一个方法可以解决,就是下载相应的whl文件安装。下载链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

文件下载后,cmd 进入whl文件所在文件夹下,然后输入以下命令:

pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl

wordcloud代码使用

安装成功后我们马上开始制作我们的图片。

from os import path
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator

d = path.dirname(__file__)

# 读文本文件
text = open(path.join(d, 'data.txt')).read()

# 读取自定义图片
alice_coloring = np.array(Image.open(path.join(d, "pic.jpg")))

# 你可以通过 mask 参数 来设置词云形状
wc = WordCloud(background_color="white",max_words=2000, 
  mask=alice_coloring, max_font_size=60,random_state=102,scale=8,
  font_path="C:\Windows\Fonts\msyhbd.ttf").generate(text)

wc.generate_from_text(text)
print('开始加载文本')
# 改变字体颜色
img_colors = ImageColorGenerator(alice_coloring)
# 字体颜色为背景图片的颜色
wc.recolor(color_func=img_colors)
# 显示词云图
plt.imshow(wc, interpolation="bilinear")
# 是否显示x轴、y轴下标
plt.axis('off')
plt.show()
# 获得模块所在的路径的
d = path.dirname(__file__)
# 将多个路径组合后返回
wc.to_file(path.join(d, "h16.jpg"))
print('生成词云成功!')

上面 text 文本内容是通过爬虫采集的,爬取的关于数据科学的一篇文章,有了文本源之后准备好你想要生成词云的图片就行了。

配置 wordcloud 的参数对于图片效果尤为重要,下面我们着重介绍一下wordcloud的参数含义:

  • font_path : string 字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf'
  • width : int (default=400) 输出的画布宽度,默认为400像素
  • height : int (default=200) 输出的画布高度,默认为200像素
  • prefer_horizontal : float (default=0.90) 词语水平方向排版出现的频率,默认 0.9
  • mask : nd-array or None (default=None) 若参数为空,则正常绘制词云。如果 mask 非空,设置的宽高值将被忽略,形状被 mask 取代。除白色的部分将不会绘制,其余部分会用于绘制词云。
  • scale : float (default=1) 按照比例进行放大画布,如设置为2,则长和宽都是原来画布的2倍。
  • min_font_size : int (default=4) 显示的最小的字体大小
  • font_step : int (default=1) 字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差。
  • max_words : number (default=200) 要显示的词的最大个数
  • stopwords : set of strings or None 设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS
  • background_color : color value (default=”black”) 背景颜色,如background_color='white',背景颜色为白色。
  • max_font_size : int or None (default=None) 显示的最大的字体大小
  • mode : string (default=”RGB”) 当参数为“RGBA”并且background_color不为空时,背景为透明。
  • relative_scaling : float (default=.5) 词频和字体大小的关联性
  • color_func : callable, default=None 生成新颜色的函数,如果为空,则使用 self.color_func
  • regexp : string or None (optional) 使用正则表达式分隔输入的文本
  • collocations : bool, default=True 是否包括两个词的搭配
  • colormap : string or matplotlib colormap, default=”viridis” 给每个单词随机分配颜色,若指定color_func,则忽略该方法。

效果展示

使用的照片是博主自己的照片。

十分钟利用Python制作属于你自己的个性logo

——————end——————

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python通过imaplib模块读取gmail里邮件的方法
May 08 Python
Python正则表达式如何进行字符串替换实例
Dec 28 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
Python configparser模块配置文件过程解析
Mar 03 Python
python如何处理程序无法打开
Jun 16 Python
使用npy转image图像并保存的实例
Jul 01 Python
如何解决python多种版本冲突问题
Oct 13 Python
python里反向传播算法详解
Nov 22 Python
Django web自定义通用权限控制实现方法
Nov 24 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
python openssl模块安装及用法
Dec 06 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 #Python
Python文本统计功能之西游记用字统计操作示例
May 07 #Python
Python中的函数作用域
May 07 #Python
Php多进程实现代码
May 07 #Python
Python格式化输出%s和%d
May 07 #Python
python获取代理IP的实例分享
May 07 #Python
对python使用http、https代理的实例讲解
May 07 #Python
You might like
怎样辨别一杯好咖啡
2021/03/03 新手入门
PHP遍历数组的几种方法
2012/03/22 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP 验证码不显示只有一个小红叉的解决方法
2013/09/30 PHP
php开启openssl的方法
2014/05/15 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
详解JavaScript函数
2015/12/01 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
详解webpack 热更新优化
2018/09/13 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
python的id()函数解密过程
2012/12/25 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
Python开发常用的一些开源Package分享
2015/02/14 Python
python中zip()方法应用实例分析
2016/04/16 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
高一新生军训感言
2014/03/02 职场文书
人事专员岗位说明书
2014/07/29 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
五好家庭事迹材料
2014/12/20 职场文书
三八妇女节寄语
2015/02/27 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python