我正在尝试使用matplotlib在3D图中绘制多条线。我有x和y值的6个数据集。到目前为止,我一直在尝试为数据集中的每个点指定一个z值。因此,数据集1中的所有点都具有z = 1,数据集2中的所有点都具有z = 2,依此类推。然后,我将它们导出到三个文件中。包含所有x值的“ X.txt”,包含所有y值的“ Y.txt”,与“ Z.txt”相同。
这是到目前为止的代码:
#!/usr/bin/python
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
import pylab
xdata = '/X.txt'
ydata = '/Y.txt'
zdata = '/Z.txt'
X = np.loadtxt(xdata)
Y = np.loadtxt(ydata)
Z = np.loadtxt(zdata)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(X,Y,Z)
plt.show()
我所得到的看起来非常接近我所需要的。但是,使用线框时,每个数据集的第一个点和最后一个点是连接的。如何更改每个数据集的线条颜色,以及如何删除数据集之间的连接线?
有没有比线框更好的打印样式?
分别加载数据集,然后分别绘制每个数据集。
我不知道您有什么格式,但是您想要这样的东西
from mpl_toolkits.mplot3d.axes3d import Axes3D
import matplotlib.pyplot as plt
fig, ax = plt.subplots(subplot_kw={'projection': '3d'})
datasets = [{"x":[1,2,3], "y":[1,4,9], "z":[0,0,0], "colour": "red"} for _ in range(6)]
for dataset in datasets:
ax.plot(dataset["x"], dataset["y"], dataset["z"], color=dataset["colour"])
plt.show()
每次您在一个对象上调用plot
(或plot_wireframe
我不知道您需要什么)时axes
,它将把数据添加为一个新系列。如果省略该color
参数,matplotlib
将为您选择参数,但是它不是太聪明,添加过多的序列后,它将循环并再次开始使用相同的颜色。
nb我还没有测试过-不记得是否color
是正确的参数。可以肯定的是。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句