matplotlib画动态三维图

从txt文本中读取数据并画动态三维点图

程序中实现动态三维图绘制,添加图标题,坐标轴标题,坐标轴数值范围,两种绘图模式,一种动态画图(所有点均保留),另一种每次仅显示一个点。

三维坐标轴设置区间,需要通过Axes3D创建ax,否则其他方式无法设置z轴范围。

每次仅显示一个点时,需要添加一行程序,通过plt.cla()清除当前ax,实现每次只显示一个点。

画折线图时可以将for循环中的点改为列表,每次apppend一个点的数据,即可实现动态折线图绘制。

plt.pause()可以设置更新速度。

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt
import numpy as np
import math

with open("c_z.txt", 'r') as f:
	my_data = f.readlines() 
    #print(my_data
	for line in my_data:
		line_data = line.split()      
		lz.append(float(line_data[0]))
lz = list(lz)
ax = Axes3D(fig)
ax.set_title('Relative Coordinates')
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("Z")
ax.set_xlim(-3500, 3500) 
ax.set_ylim(0, 7000)
ax.set_zlim(-2000, 5000)
for i in range(len(lx)):
	#x = list(range(0, i+1))
	#plt.cla()
	ax.set_title('Relative Coordinates')
	ax.set_xlabel("X")
	ax.set_ylabel("Y")
	ax.set_zlabel("Z")
	ax.set_xlim(-3500, 3500) 
	ax.set_ylim(0, 7000)
	ax.set_zlim(-2000, 5000)
	x = lx[i]
	y = ly[i]
	z = lz[i]
	ax.plot(x,z,y, c = 'r', linewidth=1, marker="*", markeredgecolor='b', markerfacecolor='r')
	plt.pause(0.5)
plt.show()

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值