自学内容网 自学内容网

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】总结

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

 


原文地址:https://blog.csdn.net/weixin_44855046/article/details/142863955

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!