gpt4 book ai didi

python - matplotlib 在 3D 中绘制多条线

转载 作者:行者123 更新时间:2023-11-28 21:57:33 28 4
gpt4 key购买 nike

我正在尝试使用 matplotlib 在 3D 图中绘制多条线。我有 6 个具有 x 和 y 值的数据集。到目前为止,我尝试过的是为数据集中的每个点赋予一个 z 值。所以数据集 1 中的所有点都有 z=1,数据集 2 中的所有点都有 z=2,依此类推。然后我将它们导出到三个文件中。 “X.txt”包含所有 x 值,“Y.txt”包含所有 y 值,“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()

每次您在axes 对象上调用plot(或plot_wireframe 但我不知道您需要什么)时,它会将数据添加为新系列。如果你遗漏了 color 参数,matplotlib 会为你选择它们,但它不太聪明,在你添加太多系列后它会循环并开始使用相同的再次着色。

注意我还没有对此进行测试 - 不记得 color 是否是正确的参数。可以肯定的是。

关于python - matplotlib 在 3D 中绘制多条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19679019/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com