У меня есть панды. DataFrame df
,
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
f = [0, 10, 20, 30]
col1 = [1+1j, 2-2j, 3+3j, 4-4j]
col2 = [5+0j, 0+6j, 1-2j, 2-1j]
col1 = np.array(col1, dtype=complex)
col2 = np.array(col2, dtype=complex)
df = pd.DataFrame({'f': f, 'col1': col1, 'col2': col2}).set_index('f')
Я хочу построить их в стиле подплота:
- Верхний подпункт предназначен для абсолютного значения
'col1'
и 'col2'
- Нижний подплот предназначен для фазового угла
'col1'
и 'col2'
- Два субплота имеют одну и ту же ось
x
.
На каждом участке есть две строки: одна для 'col1'
, а другая для 'col2'
.У меня не все df
сразу, а по одной строке за раз.
for iter in range(4):
df_one_row = df.iloc[iter] # this line is made just to mimic my real application where I receive the data row by row.
x = df.index[iter]
y1 = df_one_row['col1']
y2 = df_one_row['col2']
# update the top subplot for absolute values of two lines
update_top_subplot(x, np.abs(y1), np.abs(y2))
# update the bottom subplot for phase angle values of two lines.
update_bottom_subplot(x, np.angle(y1), np.angle(y2))
Я пытался найти некоторые решения, но не смог найти одно.Самая близкая из найденных мной - это ссылка Динамически обновляемый сюжет в matplotlib .Принятый ответ показывает способ обновления одной фигурыКстати, я обнаружил, что нужно добавить plt.pause(0.1)
после plt.draw()
в этом ответе, чтобы фактически показать цифру.
Не могли бы вы показать мне, как реализовать мою фигуру?Спасибо.