怎样用python生成三体的词云_词云(Wordcloud)使用简单介绍 | 文艺数学君

摘要这一篇文章简单介绍关于词云(wordcloud)的简单使用. 主要介绍以下生成基本的词云和加上蒙版之后的词云的图片.

简介

这一篇介绍关于词云的生成. 生成的结果如下所示. 会简单介绍一些参考资料和简单的使用方式.

12a5b78dc91cee55facd494cf4834b7f.png

参考链接

简单使用方式介绍

关于字体说明

使用wordcloud可以指定使用的字体, 在windows中, 字体在以下的文件夹中: C:\Windows\Fonts, 可以将其中的字体文件拷贝到当前的文件夹内.

我们指定字体可以使得其能生成中文的词云. 我下面放一张图, 具体生成过程是和下面的方法是一样的.

a463b3f38c8befe321fc87cf6a9cbeac.png

使用前准备

from os import path

from wordcloud import WordCloud

from PIL import Image

import numpy as np

d = path.dirname(__file__)

# Read the whole text.

text = open(path.join(d, 'constitution.txt'), encoding='utf8').read()

# 导入字体文件

font_path = path.join(d, 'HYC6GFM.TTF')

生成普通的wordcloud

我们可以指定使用的字体, 图像的大小和颜色等.

# 生成普通的wordcloud

wordcloud = WordCloud(font_path=font_path, margin=1, random_state=1, max_words=300, width=1000, height=700, background_color='white').generate(text)

wordcloud.to_file('wordcloud.jpg')

最终的生成效果如下所示:

12a5b78dc91cee55facd494cf4834b7f.png

使用蒙版来生成图片

我们想要使得生成图片能与蒙版相符, 我们使用下面的蒙版(如果想要使用自己的蒙版,可以使用关键词「剪影」或是「轮廓」,这样主要的图像是黑色的,我们主要就是突出一个轮廓):

5045997d0f6d55f080d31299fc50a1a9.png

# 生成带有mask的图片

mask = np.array(Image.open(path.join(d, "62.jpg")))

wordcloud = WordCloud(font_path=font_path, mask=mask, margin=1, random_state=1, background_color='white').generate(text)

wordcloud.to_file('wordcloud_mask.jpg')

最终生成的效果如下所示:

4826337f5825c316266ede1346523c03.png

源代码

将上面的测试代码放在了github上, 链接为: wordcloud测试脚本

关于中文文档的词云生成(例子)

三体运动是指三个物体之间的相互作用和运动。在Python中,可以使用NumPy库来描述三体运动。以下是一个简单的示例代码: ```python import numpy as np # 定义三个物体的质量 m1 = 1 m2 = 2 m3 = 3 # 定义三个物体的初始位置和速度 r1 = np.array([0, 0, 0]) v1 = np.array([0, 0, 0]) r2 = np.array([1, 0, 0]) v2 = np.array([0, 1, 0]) r3 = np.array([0, 1, 0]) v3 = np.array([0, 0, 1]) # 定义时间步长和总时间 dt = 0.01 t = 10 # 定义万有引力常数 G = 6.6743e-11 # 定义加速度函数 def acceleration(r1, r2, r3): r12 = r2 - r1 r13 = r3 - r1 r23 = r3 - r2 a1 = G * m2 / np.linalg.norm(r12)**3 * r12 + G * m3 / np.linalg.norm(r13)**3 * r13 a2 = G * m1 / np.linalg.norm(r12)**3 * (-r12) + G * m3 / np.linalg.norm(r23)**3 * r23 a3 = G * m1 / np.linalg.norm(r13)**3 * (-r13) + G * m2 / np.linalg.norm(r23)**3 * (-r23) return a1, a2, a3 # 定义位置和速度数组 r1_array = [] v1_array = [] r2_array = [] v2_array = [] r3_array = [] v3_array = [] # 进行模拟 for i in range(int(t / dt)): a1, a2, a3 = acceleration(r1, r2, r3) v1 += a1 * dt r1 += v1 * dt v2 += a2 * dt r2 += v2 * dt v3 += a3 * dt r3 += v3 * dt r1_array.append(r1) v1_array.append(v1) r2_array.append(r2) v2_array.append(v2) r3_array.append(r3) v3_array.append(v3) # 输出结果 print("物体1的位置和速度:") print(r1_array[-1], v1_array[-1]) print("物体2的位置和速度:") print(r2_array[-1], v2_array[-1]) print("物体3的位置和速度:") print(r3_array[-1], v3_array[-1]) ``` 这个代码使用了欧拉方法进行数值模拟,计算了三个物体在一定时间内的位置和速度。注意,这只是一个简单的示例代码,实际的三体运动模拟需要考虑更多的因素,比如旋转、碰撞等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值