python画图|三维动态柱状图绘制

【1】引言

前序已经学习了二维动态柱状图绘制教程,本次尝试探索三维动态柱状图绘制教程:

【2】项目设计

三维和二维的不同,要在一开始就定义。

二维的定义简单粗暴,只需要一行代码:

fig, ax = plt.subplots()  # 定义要画图

到了三维则需要两行,一行说要画三维图,一行说这个图使用哪种画法:

fig=plt.figure()
ax = fig.add_subplot(projection='3d')

另外在直方图输出的时候,调用的函数也是ax.bar3d():

def animate(i):  # 自定义函数
    ax.bar3d(x[i], np.sin(x[i]),np.cos(x[i]),0.1,0.1,abs(np.cos(x[i])))

这里的0.1,0.1,abs(np.cos(x[i]))代表的是方块的宽度、深度和高度,如需更深度的学习可通过点击下述链接直达官网:

https://matplotlib.org/stable/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.bar3d.html#mpl_toolkits.mplot3d.axes3d.Axes3D.bar3d

此时的完整代码为:

import matplotlib.pyplot as plt  # 引入画图模块
import numpy as np  # 引入计算模块

import matplotlib.animation as animation  # 引入动画模块
from joblib import delayed
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
x = np.linspace(0, 10, 100)  # 定义自变量
def animate(i):  # 自定义函数
    ax.bar3d(x[i], np.sin(x[i]),np.cos(x[i]),0.1,0.1,abs(np.cos(x[i])))

ani = animation.FuncAnimation(fig, animate, interval=50
                             )  # repeat=True, frames=len(x) - 1, interval=50 调用animation.FuncAnimation()函数画图

ani.save('ani-3d-bar-aixmls.gif') #保存动画
ax.set_title('ani-3d-bar-aixmls') #设置图名
plt.show() #输出图形

图1

import matplotlib.pyplot as plt  # 引入画图模块
import numpy as np  # 引入计算模块

import matplotlib.animation as animation  # 引入动画模块
from joblib import delayed
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
x = np.linspace(0, 10, 100)  # 定义自变量
def animate(i):  # 自定义函数
    ax.bar3d(x[i], np.sin(x[i]),np.cos(x[i]),0.1,0.1,abs(np.cos(x[i])))

ani = animation.FuncAnimation(fig, animate, interval=50
                             )  # repeat=True, frames=len(x) - 1, interval=50 调用animation.FuncAnimation()函数画图
ax.set_title('ani-3d-bar-aixmls') #设置图名
ani.save('ani-3d-bar-aixmls.gif') #保存动画

plt.show() #输出图形

【3】总结

经过自我探索,成功实现三维柱状图动图绘制。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值