代码拉取完成,页面将自动刷新
# -*- coding: utf-8 -*-
"""
date: Mon Dec 17 14:51:15 2018
python: Anaconda 3.6.5
author: kanade
email: kanade@blisst.cn
"""
import numpy as np
import matplotlib.pyplot as mp
import matplotlib.animation as ma
def update(number):
global sc, size, color, position
# 大小加一个随机量
size += np.random.randint(30, 120, n)
# 让其中一个泡泡位置变化,然后大小从0开始,颜色重新随机
burst = number % n
position[burst] = np.random.random_sample(2)
size[burst] = 0
color[burst] = np.random.random_sample(4)
# 将变化的属性给scatter,也就是让scatter以这些参数重新绘制图形
sc.set_offsets(position)
sc.set_sizes(size)
sc.set_facecolor(color)
n = 100
# 随机从0-1的浮点数,维度为(n, 2)
position = np.random.uniform(0, 1, (n, 2))
# 随机50-750的整数,维度为(n,)
size = np.random.randint(50, 750, n)
# 随机0-1的浮点数,维度为(n, 4)
color = np.random.random_sample((n, 4))
# 颜色可以给用英文表示的颜色,也可以给十六进制的代码,比如#FFFFFF
# 而16进制的#FFFFFF又可以拆分为红(r)、绿(g)、蓝(b),表示形式为(255, 255, 255)
# 在画图的时候还可以加入一个透明度,取值在0-1,(255, 255, 255, 0.5)
# matplotlib将rgb的取值从0-255变成了0-1,也就是将rgb三个值分别除以255
# 就变成了四个0-1的数组成的数组(1, 1, 1, 0.5)
mp.figure('Animation')
mp.title('Animation', fontsize=20)
mp.xticks(())
mp.yticks(())
sc = mp.scatter(position[:, 0], position[:, 1],
s=size, c=color)
# mp.gcf()表示当前窗口
anim = ma.FuncAnimation(mp.gcf(), update, interval=33)
mp.show()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。