Python可视化--词云图(中文和英文版)

中文词云图 

#-*-coding:utf-8-*-
import jieba
import numpy as np
import PIL.Image as Image
from wordcloud import WordCloud

def check_charset(file_path):
    import chardet
    with open(file_path, "rb") as f:
        data = f.read(4)
        charset = chardet.detect(data)['encoding']

# 读取txt文件
word = open(r"D:/Users.../download_CNKI.txt", "rb").read()
# 分隔txt文字
word_cut = jieba.cut(word)
# 用空格连接
word_space = ' '.join(word_cut)
print(word_space)
# 读取图片文件,生成数组
pic = np.array(Image.open(r"D:/Users/.../lizi.png"))
word = WordCloud(
    font_path='STXINGKA.TTF',  # 设置字体,本机的字体
    mask=pic,  # 设置背景图片
    background_color='FloralWhite',  # 设置背景颜色
    max_font_size=180,  # 字体最大值
    max_words=1000,  # 设置最多字数
    stopwords={'的'}  # 设置停用词,不出现
).generate(word_space)
image = word.to_image()
image.show()  # 显示图片
# word.to_file('result.png')  # 保存图片

*代码读取的是从CNKI里以“霍夫斯泰德文化维度”为关键字的txt文本

*背景颜色可以查颜色表自定(这里我用的FloralWhite,感觉是一种淡淡的橘色)

*中文版font_path参数一定要设定。设定的方式要先打开我的电脑里的控制面板,再点击字体选项,就可以看见各种电脑里包含的字体类型,点击属性就能知道想选字体的参数名字。

*词云图形状背景通过以下代码导入

pic = np.array(Image.open(r"..."))

效果图如下:

 Python可视化--词云图(中文和英文版)_第1张图片

英文词云图(要简单一些)

#导入词云的包
from wordcloud import WordCloud
#导入matplotlib作图的包
import matplotlib.pyplot as plt

f = open(r"D:/Users/.../down_savedrecs.txt",'r',encoding='utf-8').read()
#生成一个词云对象
wordcloud = WordCloud(
        background_color="FloralWhite"
        width=1500,              #设置图片的宽度
        height=960,              #设置图片的高度
        margin=10               #设置图片的边缘
        ).generate(f)
# 绘制图片
plt.imshow(wordcloud)
# 消除坐标轴
plt.axis("off")
# 展示图片
plt.show()

*读取WOS数据

*没有设定mask,大家可以自己设定

效果图:

Python可视化--词云图(中文和英文版)_第2张图片

你可能感兴趣的:(python,开发语言)