#python #matplotlib
#python #matplotlib
Вопрос:
Я довольно новичок в python и кодировании в целом. Пока у меня есть этот код.
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt('data.csv', delimiter=',', skiprows=1)
mSec = data[:,0]
Airspeed = data[:,10]
AS_Cmd = data[:,25]
airspeed = data[:,3]
plt.rc('xtick', labelsize=25) #increase xaxis tick size
plt.rc('ytick', labelsize=25) #increase yaxis tick size
fig, ax = plt.subplots(figsize=(40,40), edgecolor='b')
ax.patch.set_facecolor('white')
ax.plot(mSec, Airspeed, label='Ground speed [m/s]')
ax.plot(mSec, AS_Cmd, label='Voltage [V]')
plt.legend(loc='best',prop={'size':20})
fig.savefig('trans2.png', dpi=(200), bbox_inches='tight') #borderless on save
Тем не менее, я не хочу индивидуально читать каждый столбец данных, который есть. Я хочу иметь возможность загружать файл csv и считывать в нем имена всех столбцов, затем запрашивать у пользователей, что вы хотите для своих осей x и y, и строить этот график. Формат файла csv:
time(s),speed(mph),heading,bvoltage(v)
20,30,50,10
25,45,50,10
30,50,55,9
Вот моя попытка кода, но мне не хватает много информации:
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt('data.csv', delimiter=',')
## names = where I will store the column names
white True:
## display names to user
print ('Pick your x-axis')
xaxis = input()
print ('Pick your y-axis')
yaxis1 = input()
print('pick a 2nd y-axis or enter none')
yaxis2 = input()
if input()= 'none'
break;
else continue
#plot xaxis vs yaxis vs 2nd yaxis
Я понимаю, что цикл неверен. Я не хочу, чтобы кто-нибудь поправлял меня в этом, я сам разберусь, однако мне нужен способ доступа к этим значениям из файла CSV, чтобы я мог использовать его в этом методе.
Комментарии:
1. Используйте библиотеку python pandas . Создайте объект DataFrame с помощью метода .read_csv() . Структуры фреймов данных очень просты в использовании, и их индексация естественна.
Ответ №1:
Используя pandas
, вы можете сделать:
import pandas as pd
data = pd.read_csv("yourFile.csv", delimiter=",")
и постройте столбцы с именами ColName1
ColName2
друг против друга с:
data.plot(x='Col1', y='Col2')
Если у вас есть первая строка в файле csv с желаемыми именами столбцов, pandas
они будут выбраны автоматически, в противном случае вы можете поиграть с header
аргументом of read_csv
.
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
Ответ №2:
Если вы не возражаете против использования / установки другого модуля, то pandas должен это сделать.