У меня есть файл CSV (с данными ЧПУ), который имеет около 10000 строк и шесть столбцов. Мне нужно прочитать столбцы 4, 5 и 6, представляющие собой координаты x, y и z, и построить трехмерный график с помощью matplotlib.
Может кто-нибудь помочь, как прочитать определенный столбец из CSV файла?
Это то, что у меня есть сейчас:
import numpy as np
import json
from datetime import datetime
from numpy import genfromtxt
from datetime import timezone
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
import csv
data_open = open("cnc_data.txt").read()
data_open = data_open.split("\n")
data=[]
tmp=[]
for x in range (len(data_open)):
data.append(json.loads (data_open[x]))
data[x]["timestamp"]=datetime.strptime(data[x]["timestamp"], '%Y-%m-%d %H:%M:%S.%f')
data[x]["timestamp"]=data[x]["timestamp"].replace(tzinfo=timezone.utc).timestamp()
tmp.append(list(data[x].values()))
np.savetxt("CNC.csv", tmp, fmt='%f')
figure = plt.figure()
axis = figure.add_subplot(1,1,1, projection = '3d')
h=0
while h < len(data) :
X= [data[h]["analogInputValueX"]]
Y= [data[h]["analogInputValueY"]]
Z= [data[h]["analogInputValueZ"]]
print (X)
print (Y)
print (Z)
h = h + 1
plt.plot(X, Y, Z)
axis.set_xlabel('x-axis')
axis.set_ylabel('y-axis')
axis.set_zlabel('z-axis')
plt.show()
Я думаю, вы найдете панд, подходящих для ваших нужд. У него есть несколько потрясающих инструментов манипулирования данными.
Пример кода:
import pandas as pd
df = pd.read_csv('/path/to/csv/file') # You can use the 'delimiter' argument to specify a delimiter of your choosing
x_column = df.iloc[:, 3]
y_column = df.iloc[:, 4]
z_column = df.iloc[:, 5]
Остальная часть кода (прорисовка и т.д.) Должна оставаться прежней
Я действительно не знаю, что такое данные ЧПУ, но я знаю, как читать определенные столбцы из файла CSV.
Я надеюсь, что мой код может помочь вам.
данные CSV
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
ПРОЧИТАЙТЕ 4,5,6 ЗАКЛЮЧЕНИЙ
#open file
fo = open("test.csv")
#create empty list
ls = []
x_columns = []
y_columns = []
z_columns = []
#read data row by row
for line in fo:
line = line.replace("\n","")
ls = list(line.split(","))
x_cloumns.append(ls[3])
y_cloumns.append(ls[4])
z_cloumns.append(ls[5])
fo.close
print(x_columns,y_columns,z_columns)
выход
['4', '4', '4', '4', '4', '4', '4', '4', '4', '4']
['5', '5', '5', '5', '5', '5', '5', '5', '5', '5']
['6', '6', '6', '6', '6', '6', '6', '6', '6', '6']
x
,y
иz
тогда:x_column = df['x'], y_column = df['y'], z_column = df['z']