如何使用python3在3D中绘图?

时间:2019-06-18 20:22:42

标签: python-3.x mplot3d line-plot

我目前只能锁定一件简单的事情(我想),但是我没有发现完全相同的问题和我想做的事情。我想要以3D绘制17个图。每个图将代表Y轴。我有一个数据文件,我可以使用\ t分隔符将其放入csv中,但是我不了解我们如何只用线条,没有表面,没有散点,没有轮廓等就可以在3D中绘制...行。

我在Linux上,并且已经尝试了y = 1和y = 2的2个图。我在网上查找了一些示例,但没有人可以使用,我一无所知...

例如,我有此data.csv:

251.069 0.15    1
251.67  0.148   1
252.27  0.147   1
252.871 0.147   1
253.472 0.146   1
254.072 0.144   1
254.673 0.143   1
255.273 0.141   1
255.874 0.14    1
256.474 0.139   1
250.468 0.163   2
251.069 0.162   2
251.670 0.160   2
252.270 0.159   2
252.871 0.157   2
253.472 0.156   2
254.072 0.154   2
254.673 0.152   2
255.273 0.151   2
255.874 0.150   2
256.474 0.148   2

第三列等于我的y轴。

我开始用这种代码分析这些数据:

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

DataX_Y_1D = np.loadtxt("data.csv", delimiter="\t")

# create 2d x,y grid (both X and Y will be 2d)
X, Y = np.meshgrid(DataX_Y_1D[:,0], DataX_Y_1D[:,1])

# get 2D z data
Z = np.loadtxt("data.csv", delimiter="\t")

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.plot(X, Z, Y, label='parametric curve')

plt.show()

但是我不了解Z线,我尝试使用:

进行更改
X, Y , Z  = np.meshgrid(DataX_Y_1D[:,0], DataX_Y_1D[:,1], DataX_Y_1D[:,2])

Traceback (most recent call last):
  File "try.py", line 8, in <module>
    X, Y , Z  = np.meshgrid(DataX_Y_1D[:,0], DataX_Y_1D[:,1],     DataX_Y_1D[:,2])
  File "/home/gabriel/miniconda3/lib/python3.6/site-packages/numpy/lib/function_base.py", line 4679, in meshgrid
    output = [x.copy() for x in output]
  File "/home/gabriel/miniconda3/lib/python3.6/site-packages/numpy/lib/function_base.py", line 4679, in <listcomp>
    output = [x.copy() for x in output]
MemoryError

0 个答案:

没有答案