十分钟利用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的time模块中的常用方法整理
Jun 18 Python
Python3 操作符重载方法示例
Nov 23 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
python中Lambda表达式详解
Nov 20 Python
python cv2在验证码识别中应用实例解析
Dec 25 Python
Python线程条件变量Condition原理解析
Jan 20 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
python通配符之glob模块的使用详解
Apr 24 Python
Python 数据可视化神器Pyecharts绘制图像练习
Feb 28 Python
浅析Python OpenCV三种滤镜效果
Apr 11 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中simplexml_load_string函数使用说明
2011/01/01 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
Python连接mysql数据库的正确姿势
2016/02/03 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
Python 爬虫的原理
2020/07/30 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
悦木之源美国官网:Origins美国
2016/08/01 全球购物
现代化办公人员工作的自我评价
2013/10/16 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers