具有动画效果的图表(绘制会闪的星星)

%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.animation import FuncAnimation

# 1.生成测试数据
xx = np.array([13, 5, 25, 13, 9, 19, 3, 39, 13, 27])
yy = np.array([4, 38, 16, 26, 7, 19, 28, 10, 17, 18])
zz = np.array([7, 19, 6, 12, 25, 19, 23, 25, 10, 15])

# 2.创建画布和3d坐标系实例
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 3.绘制初始的3D散点图
star = ax.scatter(xx, yy, zz, c='white', marker='*', s=160, lw=1, edgecolor='k')


# 4.更新画面函数(回调函数)
def update(i):
    if i % 2:
        color = 'orange'
        ax.set(visible=True)
    else:
        color = 'white'
        ax.set(visible=False)
    star = ax.scatter(xx, yy, zz, c=color, marker='*', s=160, lw=1, edgecolor='k')
    return star


def init_draw():
    star = ax.scatter(xx, yy, zz, c='r', marker='*', s=160, lw=1, edgecolor='k')
    return star


# 5.创建动画实例
ani = FuncAnimation(fig=fig, func=update, frames=None, interval=200, blit=True)

# 6.展示图表
plt.show()
# 【课堂练习7.2】
# matplotlib中文网 https://www.matplotlib.org
# 需求一:绘制动画,让星星一会儿出现,一会儿消失,间隔时间为1秒(见运行结果展示图)
# 提示:利用scatter返回的示例,调用PatchCollection类中的set()方法,可以隐藏散点
#       当然,也可以采用你自己的方法!只要实现相同效果即可。

%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.animation import FuncAnimation

# 1.生成测试数据
xx = np.array([13, 5, 25, 13, 9, 19, 3, 39, 13, 27])
yy = np.array([4, 38, 16, 26, 7, 19, 28, 10, 17, 18])
zz = np.array([7, 19, 6, 12, 25, 19, 23, 25, 10, 15])

# 2.创建画布和3d坐标系实例
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 3.绘制初始的3D散点图
star = ax.scatter(xx, yy, zz, c='white', marker='*', s=160, lw=1, edgecolor='k')

# 4.更新画面函数(回调函数)
def update(i):
    if i % 2:
        color = 'black'
    else:
        color = 'white'
    star = ax.scatter(xx, yy, zz, c=color, marker='*', s = 160, lw=1, edgecolor='k')  
    return star

def init_draw():
    star = ax.scatter(xx, yy, zz, c='r', marker='*', s = 160, lw=1, edgecolor='k')  
    return star

# 5.创建动画实例
ani = FuncAnimation(fig=fig, func=update, frames=None, interval=200, blit=True)

# 6.展示图表
plt.show()

以上两种方法均可实现

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值