#python #matplotlib
Вопрос:
У меня есть столбец в моем фрейме данных, который содержит одно из следующих значений: прямо/вверх/вниз/влево/вправо, и я хочу построить график, который позволит легко определить в каждом кадре направление взгляда. Что я пытался:
plt.figure(figsize=(10, 10)) plt.plot(df_patient['gaze_direction']=='up', label='UP') plt.plot(df_patient['gaze_direction']=='down', label='DOWN') plt.plot(df_patient['gaze_direction']=='left', label='left') plt.plot(df_patient['gaze_direction']=='right', label='right') plt.plot(df_patient['gaze_direction']=='straight', label='straight') # Change the number of columns here plt.legend(ncol=5) plt.xlabel('Frame Number') plt.ylabel('Gaze Direction') plt.show()
Но график, который я получил, был не совсем ясен:
Как я могу построить такую информацию, чтобы она была более информативной и простой для анализа?
Я думал сделать «график импульсов» таким образом, чтобы прямая получала значение 0, например, вверх/вниз-0,5/-0,5..
conditions = [ (df_patient["gaze_direction"] == 'up'), (df_patient["gaze_direction"] == 'down'), (df_patient["gaze_direction"] == 'left'), (df_patient["gaze_direction"] == 'right'), (df_patient["gaze_direction"] == 'straight') ] # create a list of the values we want to assign for each condition values = [0.5, -0.5, 1, -1, 0] # create a new column and use np.select to assign values to it using our lists as arguments df_patient['gaze_direction_plt_vals'] = np.select(conditions, values)
и я строю его столбики (с plt.участок был очень плотным):
Есть ли лучший способ?