Я новичок в python и panda, я пытаюсь построить свои данные (это гауссовский профиль), используя фрейм данных в panda.У меня есть семь столбцов в моем фрейме данных (сначала как ось X, а остальные как оси Y). Мне удалось построить все столбцы Y и ось X вручную для каждого кадра, но я не могу сделать это в цикле, который болееэффективное программирование.
Вот что я получил до сих пор ... df.head()
дает мне мои данные следующим образом:
pixel f1 f2 f3 f4 f5 f6
0 1 372 373 373 368 374 372
1 2 372 373 370 371 371 371
2 3 371 375 369 373 373 370
3 4 372 370 370 369 367 367
4 5 367 369 368 370 370 368
Затем я написал следующий код для построения графика данных (изтолько индекс от 450 до 550) в подзадачах, используя df.plot
,
fig, axes = plt.subplots(nrows=2, ncols=3,figsize=(20,10))
df[450:550].plot(x='pixel', y='f1',ax=axes[0,0],grid=True)
df[450:550].plot(x='pixel', y='f2',ax=axes[0,1],grid=True)
df[450:550].plot(x='pixel', y='f3',ax=axes[0,2],grid=True)
df[450:550].plot(x='pixel', y='f4',ax=axes[1,0],grid=True)
df[450:550].plot(x='pixel', y='f5',ax=axes[1,1],grid=True)
df[450:550].plot(x='pixel', y='f6',ax=axes[1,2],grid=True)
Я попытался выполнить этот процесс в цикле следующим образом:
x = df[450:550].pixel
y1 = df[450:550].f1
y2 = df[450:550].f2
y3 = df[450:550].f3
y4 = df[450:550].f4
y5 = df[450:550].f5
y6 = df[450:550].f6
frames=[y1,y2,y3,y4,y5,y6]
fig, axes = plt.subplots(nrows=2, ncols=3,figsize=(20,10))
for c,num in zip(frames, xrange(1,8)):
plt.subplot(2, 3, num)
df[450:550].plot(x='pixel',y=c,ax=axes[num], grid=True)
fig.tight_layout()
plt.show()
, затем я попытался for loop
, используяzip, enumerate
но это не работает.Я думаю, я запутался с df.plot
и ax.plot
Пожалуйста, помогите !!!!