У меня есть фрейм данных, как показано ниже.
Device_ID Die_Version Temp(deg) sup(V) freq sensitivity THD_94 THD_100 THD_105 THD_110 THD_112 THD_114 THD_115 THD_116 THD_118 THD_120
TTM_041 0x16 -40 1.8 0.8 -25.041 0.009 0.01 0.071 0.206 0.143 0.099 0.1 0.296 4.243 11.888
TTM_041 0x16 -40 1.8 2.4 -25.041 0.009 0.01 0.075 0.206 0.143 0.1 0.101 0.245 4.495 11.728
TTM_041 0x16 -40 1.98 0.8 -25.04 0.009 0.01 0.076 0.207 0.143 0.1 0.102 0.313 4.484 11.844
Мне нужно построить график таким образом, чтобы имена столбцов (THD_94 THD_100 THD_105 THD_110 THD_112 THD_114 THD_115 THD_116 THD_118 THD_120) должны располагаться на оси X, а их значения — на оси Y.
Я попытался с приведенным ниже кодом, но он не работает должным образом.
fig = px.line(df_MM_SPEC, x=px.Constant('col'), y=['THD_94', 'THD_100'], animation_frame='Device_ID')
# fig.update_layout(barmode='group')
fig.show()
Спасибо. Я новичок в этом. Если вы не возражаете, не могли бы вы показать мне, как это сделать.
конечно. Сначала дайте вам знать, что это не тот формат, который я просил, а все, что легко читать с пандами, и в то же время легко представить в виде текста. Я думаю, что словари хороши для этого. если у вас есть data_frame, вы можете сделать df.to_dict()
и дать результат
reshaped_df = df[[col for col in df.columns if 'THD' in col]].T.stack().reset_index()
дает нам некоторые измененные данные, которые выглядят так:
level_0 level_1 0
0 THD_94 0 0.009
1 THD_94 1 0.009
2 THD_94 2 0.009
3 THD_100 0 0.010
4 THD_100 1 0.010
5 THD_100 2 0.010
6 THD_105 0 0.071
7 THD_105 1 0.075
8 THD_105 2 0.076
9 THD_110 0 0.206
10 THD_110 1 0.206
11 THD_110 2 0.207
12 THD_112 0 0.143
13 THD_112 1 0.143
14 THD_112 2 0.143
15 THD_114 0 0.099
16 THD_114 1 0.100
17 THD_114 2 0.100
18 THD_115 0 0.100
19 THD_115 1 0.101
20 THD_115 2 0.102
21 THD_116 0 0.296
22 THD_116 1 0.245
23 THD_116 2 0.313
24 THD_118 0 4.243
25 THD_118 1 4.495
26 THD_118 2 4.484
27 THD_120 0 11.888
28 THD_120 1 11.728
29 THD_120 2 11.844
Возможно, было бы разумно переименовать ваши столбцы во что-то более логичное, но я оставлю это читателю. С измененными данными анимировать довольно просто:
px.line(reshaped_df, x='level_0', y=0, animation_frame='level_1')
не могли бы вы добавить свои данные в виде словаря, где ключи - это имена столбцов, а значения dict - это список? Было бы легко воспроизвести ваши данные