十分钟利用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编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
简析Python的闭包和装饰器
Feb 26 Python
对Python的Django框架中的项目进行单元测试的方法
Apr 11 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
Python绘制的二项分布概率图示例
Aug 22 Python
python3 实现验证码图片切割的方法
Dec 07 Python
python实现感知机线性分类模型示例代码
Jun 02 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
如何在mac环境中用python处理protobuf
Dec 25 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
Apr 20 Python
django 连接数据库出现1045错误的解决方式
May 14 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
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
再论Javascript的类继承
2011/03/05 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
python实现哈希表
2014/02/07 Python
Python实现获取网站PR及百度权重
2015/01/21 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
Python中如何添加自定义模块
2020/06/09 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
比利时家具购买网站:Home24
2019/01/03 全球购物
党员个人整改措施
2014/10/24 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
芙蓉镇观后感
2015/06/10 职场文书
企业宣传稿范文
2015/07/23 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python