Как отобразить часть значений для всех столбцов во фрейме данных, используя цикл и субплоты в пандах - PullRequest
0 голосов
/ 22 февраля 2019

Я новичок в 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

Пожалуйста, помогите !!!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...