Я полагаю, что значения X и Y на графике должны быть представлены столбцами и линиями в CSV, который выглядит следующим образом:
0,original,1.0000,0.9999,0.9998,0.9997,0.9996,0.9995... 0.9900
1,28663, 4144,6096,6859,7366,7876,8125...
2,11268, 1374,2119,2393,2615,2809,2904...
3,14734, 2122,3115,3466,3740,4011,4144...
4,13341, 1452,2322,2689,2877,3114,3238...
5,18458, 2677,3643,4047,4333,4652,4806...
6,13732, 1621,2224,2502,2704,2930,3020...
7,17771, 2955,3904,4270,4566,4872,5041...
8,14447, 1822,2437,2715,2933,3179,3292...
.
.
.
5400,18458,2677,3643,4047,4333,4652,4806
Я хотел бы вывести свои данные на графике. Если я делаю это в 2D-графике, это выглядит ужасно.
Изображение 1 показывает эти данные в формате 2D, каждый ряд столбцов имеет свой цвет, "исходные" значения, например, синий ряд. Мне кажется, что было бы лучше визуальное представление, если бы это было 3D.
Я бы искал что-то вроде изображения 2 . Я понимаю, что значения Z - это величина каждой ячейки в таблице . Я полагаю, что я должен был бы построить кучу различных серий (где каждая серия происходит из каждого целого столбца в CSV). Я прав?
Как говорится, мой вопрос: Как я могу отобразить мои данные .csv в 3D-графикеУчитывая ситуацию, на которую я указал?
РЕДАКТИРОВАТЬ: Я нашел код, который вроде как делает то, что я хочу. Я получил это от здесь . Я предполагаю, что я хотел бы применить каждый столбец как np.meshgrid (DataAll1D [:, 0] добавляет столбец 0 к графику. Кажется, что функция meshgrid принимает любое количество 1D массивов, которые я просто не делаюзнать, как это сделать в Python.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
DataAll1D = np.loadtxt("datacsv_1d.csv", delimiter=",")
# create 2d x,y grid (both X and Y will be 2d)
X, Y = np.meshgrid(DataAll1D[:,0], DataAll1D[:,1])
# repeat Z to make it a 2d grid
Z = np.tile(DataAll1D[:,2], (len(DataAll1D[:,2]), 1))
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, cmap='ocean')
plt.show()