十分钟利用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实现从url中提取域名的几种方法
Sep 26 Python
Python字符串中查找子串小技巧
Apr 10 Python
python实现感知器算法详解
Dec 19 Python
python之pandas用法大全
Mar 13 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
python使用rpc框架gRPC的方法
Aug 24 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
Python面向对象基础入门之编码细节与注意事项
Dec 11 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
Python爬虫之Spider类用法简单介绍
Aug 04 Python
基于python实现坦克大战游戏
Oct 27 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程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
加强版phplib的DB类
2008/03/31 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
bootstrap data与jquery .data
2014/07/07 Javascript
JS常用函数使用指南
2014/11/23 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
在Python中使用元类的教程
2015/04/28 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
亿企通软件测试面试题
2012/04/10 面试题
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
python 实现的截屏工具
2021/05/08 Python
美元符号 $
2022/02/17 杂记
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server