《Python语言程序设计基础》嵩天著-第7章学习

虽然标题是第七章,但是上课内容和课本第七章内容却不大相同,标题用这个名字好像挂羊头卖狗肉诶~
(。・∀・)ノ゙管它那么多了,直接贴上来代码

文章目录

    • homework 1 编写脚本,运行程序,绘制自己喜欢的图形
    • wordcloud 函数及操作方法
    • homework 2 选取一篇文章,绘制词云

homework 1 编写脚本,运行程序,绘制自己喜欢的图形

脚本就不贴了,大家自己思考叭~
其实很简陋的滴,先构思好自己的图和步骤,会好很多


# homework 1 编写脚本,运行程序,绘制自己喜欢的图形
import turtle as t
t.setup(800,800,0,0)
t.speed(0)
t.pencolor("grey")
t.pensize(3)
t.up()
t.goto(0,-280)
t.down()
t.circle(280)
t.left(90)
# 读取数据
datas = []
fo = open("jiaoben2.txt","r",encoding="utf-8")
for i in fo:
    i = i.replace("\n","") #把每一行最后一个换行符/回车,换成空
    datas.append(list(map(eval,i.split(","))))
    # 把每一行以逗号为分割读取
fo.close()
#自动绘制
r = 280
for i in range(len(datas)):
    t.pencolor(datas[i][3],datas[i][4],datas[i][5])
    t.fd(r*datas[i][0])
    if datas[i][1] == 1:
        t.right(datas[i][2])
    else:
        t.left(datas[i][2])
t.done()

《Python语言程序设计基础》嵩天著-第7章学习_第1张图片

**wordcloud 库的介绍课本上好像没有,贴上一些需要用的函数和操作方法,[[安装请参考jieba库的安装]]

wordcloud 函数及操作方法

import worldcloud as w
c = w.WordCloud() #生成词云对象,对象有可选参数,注意大小写
c.generate("www") # 把文本加载到对象中
c.to_file("pywccloud.png") # 输出图像文件即png/jpg的名字和类型
# 中文需要分词,并以空格为分隔符
""" 
wordcloud.Wordcloud() 中可选参数
width : 图片宽度,默认为400
height : 图片长度.默认为200
font_path : 字体类型
min_font_size : 词云中字体的最小字号,默认4号
max_font_size : 词云中的最大字号,根据高度自动调节
font_step : 词云中字体字号的步进间隔,默认为1
max_words : 词云显示的最大单词数量,默认200
stopwords : 不显示的单词{列表}

font_path : 指定字体文件的路径,默认为none  
ep: a = w.Wordcloud(font_path="")
font_path = r"\System\Library\Font\ArialUnicode.ttf" 在mac不需要指定路径
在 window 中不需要指定路径

mask : 词云形状,默认长方形,需要引用imread()
# 友情提醒:imageio是第三方库需安装!
from imageio import imread 
mk= imread("图片名.类型")
mask = mask

background_color :指定词云图片背景颜色,默认黑色
"""

homework 2 选取一篇文章,绘制词云

词云绘制还是很有趣的


import jieba as j
import wordcloud as w
from imageio import imread
mask = imread("公主.jpg") #引用背景图
f = open("三体全集.txt","r",encoding = "utf-16")
# UTF8/UTF16是国际编码,又称万国码。
# UTF8 是一套以8位为一个编码单位的可变长编码,而UTF16就是16位。
t = f.read() #将打开后的阅读文件赋值给t
f.close()
ls = j.lcut(t) # 对t进行分词,返回一个列表
excludes = {"一个","没有","现在","已经","什么",\
            "知道","这个","看到","可能","可以",\
            "就是","这样","不是","那个","这种",\
           "如果","只是","出现","两个","这里"} #排除无用词
txt = " ".join(ls) # 以空格为分隔符,将列表ls所有元素组合成一个长字符串
w = w.WordCloud(font_path = "STSONG.TTF",mask = mask,\
                width = 1000,height = 700,\
                background_color = "white",\
               stopwords = excludes)
#  背景色建议设置成和mask引用的形状图片的背景色一样,建议挑选颜色分明的图片
#  字体可以在C盘中搜索Fonts找到有什么字体,在右键属性复制粘贴过来即可
# 中文的话,字体务必要设置否则就显示不了词云了,只能显示框框
w.generate(txt)
w.to_file("三体词云2.png")

《Python语言程序设计基础》嵩天著-第7章学习_第2张图片

你可能感兴趣的:(python,编程语言,其他,经验分享)