!!!〉〉我是一个新手,3个小时前我打开了matplotlib,在这里自学。如果你介绍了任何新的命令/行,请告诉我它们的名字,这样我就可以查找教程了,谢谢!
正在尝试:绘制轨迹/线的3D图
问题:我有一个.csv文件,29组x y z数据点,49行(时间点)。即,我在49个时间点上跟踪3D空间中的29个粒子。列标题ATM为“x1,y1,z1,x2,y2,z2......”等。3D部分不是问题,但我对写出70多行同样的东西不感兴趣。
也就是说,我宁愿不写:
x = points['x'].values
x2 = points['x2'].values
x3 = points['x3'].values
...
x29 = points['x29'].values
等等。
有没有办法说“从那个.csv中绘制x1,y1,z1到x29,y29,z29”?
from mpl_toolkits.mplot3d import Axes3D
import sys
import matplotlib.pyplot as plt
import pandas
import numpy as np
points = pandas.read_csv('D:Documents\PYTHON_FILES/test3d.csv')
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = points['x'].values
y = points['y'].values
z = points['z'].values
x2 = points['x2'].values
y2 = points['y2'].values
z2 = points['z2'].values
ax.plot(x, y, z, c='red', marker='o', linewidth=1.0, markersize=2)
ax.plot(x2, y2, z2, c='blue', marker='o', linewidth=1.0, markersize=2)
plt.show()
提前感谢!
2条答案
按热度按时间bvhaajcl1#
是的,根据您的代码,这些代码将事物标记为
x
、x2
等...因此,逻辑是:1.使用for循环迭代数字
1.使用f字符串使事情变得更容易。
代码如下:
F字符串基本上是字符串,但带有变量。你可以在字符串前写上
f
,并使用{}
括号添加变量。注意,这两种方法的输出给予一样的:cidc1ykv2#
因为它是一个固定的行数,所以你可以在一个范围内迭代来得到值。如果它不是固定的,你可以计算行数,然后用它来设置范围。
更新:回应@TheMyth的评论