python画笔
使用前需要导入 turtle 包—import turtle
函数 | 描述 |
---|---|
Pen() | turtle.Pen()创建一个窗口(拿起一个笔) |
up() | turtle.up()拿起画笔 |
down() | turtle.down()放下画笔 |
forward() | turtle.forward(self)向前移动 self 个像素 |
right() | turtle.right(angle)向右旋转 angle 度 |
left() | turtle.left(angle)向左旋转 angle 度 |
circle(i,t,steps = “k”) | 画一个半径为 i,旋转角度为 t 度的圆,若设定 steps 值则画出半径为 i 的圆的内切 k 边形,此函数不能直接使用数组,必须一个一个数的代入,例如 turtle.circle(b[j][0],b[j][1]) |
goto(x,y) | turtle.goto(x,y)将画笔移动到(x,y) |
color(a,b) | turtle.color(a,b)a 为画笔颜色,b 为填充颜色,用到填充时需要用的以下两个函数 |
begin_fill() | turtle.begin_fill()#开始填充 |
end_fill() | turtle.end_fill()#结束填充 |
done() | turtle.done()让画板停在最后一步 |
hideturtle() | turtle.hideturtle()隐藏画笔 |
Python词云分析
导入 wordcloud 包
第三方包,若没有,需要在控制台输入 pip install wordcloud 进行下载
创建 WordCloud 对象
w = wordcloud.WordCloud(‘ 设置内容 ’)
创建对象时可以设置词云图的长宽、背景颜色、字体路径等等。
常用参数 | 描述 |
---|---|
width | width 词云图片宽度,默认 400 像素 |
height | height 词云图片高度 默认 200 像素 |
background_color | background_color 词云图片的背景颜色,默认为黑色。 background_color='white’将背景颜色调为白色 |
font_step | font_step 字号增大的步进间隔 默认 1 号 |
font_path | font_path 指定字体路径 默认 None,对于中文可用 font_path=‘msyh.ttc’ |
mini_font_size | mini_font_size 最小字号 默认 4 号 |
max_font_size | max_font_size 最大字号 根据高度自动调节 |
max_words | max_words 最大词数 默认 200 |
stop_words | stop_words 不显示的单词 stop_words={“python”,“java”} |
Scale | Scale 默认值 1。值越大,图像密度越大越清晰 |
调用词云对象的 generate 方法,将文本传入。
w.generate(txt)
将生成的词云保存为 output.png 图片文件,保存到当前文件夹中。
w.to_file('output.png')
中文词解
对于中文文档我们可以将其进行拆解
需要用到 jieba 包(也是第三方包,若没有需要在控制台输入 pip install jieba
进行下载)
txtlist = jieba.lcut(txt)
中文拆解的精确模式(常用)
每个词只用一次(补充)。拆解之后是
['动力学', '和', '电磁学']
,
而对于词云的 generate 方法需要
'动力学 和 电磁学'
,这种格式,所以用以下函数进行转化:
string = " ".join(txtlist)
绘制特定形状的词云
程序自带的 matplotlib.pyplot 里也有 imread 函数
需要导入第三方包 imageio(在控制台输入 pip install imageio 进行下载)
mk = imageio.imread("wu.png")
#读取图片
创建词云对象 WordCloud ,将 mask 设置为 mk,就可以使用了。
w = wordcloud.WordCloud(mask=mk)
一般需要把 scale(=15)设置为更高一点,输出的图片会更清晰。
注意:导入的图片格式和输出的图片格式要一样
import matplotlib.pyplot as plt
#导入 matplotlib.pyplot 并命名为 plt
matplotlib.pyplot 也有 imread()读取函数
plt.imshow(t) | 将词云图通过 plt 展示出来 |
---|---|
plt.axis(‘off’) | 关掉坐标轴 |
plt.show() | 将词云图展示出来 |
代码
import wordcloud#生成词云
import jieba#中文词拆解
import matplotlib.pyplot as plt#导入 matplotlib.pyplot 并命名为 plt
mk = plt.imread("tu.jpg")
#打开文件,读取文件,关闭文件
f = open('You are Absolutely Unique.txt',encoding='utf-8')
txt = f.read()
f.close()
txtlist = jieba.lcut(txt) #将中文文本进行词解
string = " ".join(txtlist) #将词解结果进行组合
#创建词云对象 w,设置长 1000 像素,宽 700,背景颜色白色,font_path 指定字体路径 默认 None,对于中文可用 font_path='msyh.ttc'
w = wordcloud.WordCloud(background_color='white',
font_path='msyh.ttc',
mask=mk,
scale=15,
stopwords={'什么','东西'}
)
#调用词云对象的 generate 方法,将文本传入
t = w.generate(string)
#将词云图通过 plt 展示出来
plt.imshow(t)
#关掉坐标轴
plt.axis('off')
plt.show()
# 将生成的词云保存为 output2-poem.png 图片文件,保存到当前文件夹中
w.to_file('output1.jpg')
结果如下: