!!〉〉我是一个完全的新手,我在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
等等
有没有一种方法可以说“从x1,y1,z1到x29,y29,z29。csv”代替?
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条答案
按热度按时间olmpazwi1#
是的,基于你的代码,它们有标记为
x
,x2
等的东西。所以逻辑是1.使用for循环迭代数字
1.使用f-string使事情更容易。
代码如下:
F字符串基本上是字符串,但带有变量。您可以在字符串之前写入
f
,并使用{}
括号添加变量。注意,它们给予了相同的输出:yr9zkbsy2#
因为它的行数是固定的,所以你可以遍历一个范围来获取值。如果它不是固定的,您可以计算行数并使用它来设置范围。
更新:回应@TheMyth的评论