Как построить в 3D, используя линию с python3? - PullRequest
0 голосов
/ 18 июня 2019

Я в настоящее время заблокирован простой вещью (я думаю), но я не нашел ту же самую проблему и вещь, которую я хочу сделать.Я хочу построить 17 сюжетов в 3D.Каждый график будет представлять ось Y.У меня есть файл данных, который я могу поместить в csv с разделителем \ t, однако я ничего не понимаю о том, как мы можем строить трехмерные изображения только с линией, без поверхности, без разброса, без контура и т. Д.линии.

Я нахожусь на Linux, и я уже пробую только для 2 графиков с y = 1 и y = 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
...