Добавление вывода одного графика в другой граф - PullRequest
0 голосов
/ 08 октября 2019

Я хотел бы найти способ перевести и добавить нижний график (от y = -20 до 0) на вышеприведенный график (от y = 0-20), чтобы конечная область находилась в диапазоне от y = 0 до 20:

enter image description here

Однако я нахожу проблемы с этим, поскольку график, который я использовал для построения нижнего графика (R12), уже имеет отрицательный вход,таким образом, он не будет отображаться на положительной оси Y. Вот мой код:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

N = 1001
lower = 0
upper = 20
u = np.linspace(lower, upper, N)
t1a, t3a = np.meshgrid(u,-u)
t1, t3 = np.meshgrid(u,u)
omega = 10
delta = 5
tau = 2
mu = 1
t2 = 0.1


def g(t):
    return delta * (omega ** 2) * (tau ** 2) * ((np.e ** (-t/tau))+(t/tau)-1)


R12 = 1 * (mu ** 4) * (np.e **(-1j * omega * (t3a-(t1a)))) * (np.e ** (-g(t1a)+g(t2)-g(t3a)-g(t1a+t2)-g(t2+t3a)+g(t1a+t2+t3a)))
R45 = 1 * (mu ** 4) * (np.e ** (-1j * omega * (t3+t1))) * (np.e ** (-g(t1)-g(t2)-g(t3)+g(t1+t2)+g(t2+t3)-g(t1+t2+t3)))
R12_fft = np.fft.fftshift((np.fft.fft2((R12)))) / np.sqrt(len(R12)) 
R45_fft = np.fft.fftshift((np.fft.fft2((R45)))) / np.sqrt(len(R45))
R_pure = (R12_fft + R45_fft)

plt.contourf(t1a,t3a,R12_fft, cmap = 'seismic')
plt.contourf(t1,t3,R45_fft, cmap = 'seismic')
plt.xlabel('${\omega}_{3}$', fontsize = 24)
plt.ylabel('${\omega}_{1}$', fontsize = 24)
plt.xlim(-20, 20)
plt.ylim(-20, 20)
plt.gca().set_aspect('equal', adjustable='box')
plt.colorbar()
plt.show()

Например, если я попытаюсь сделать простое добавление:

plt.contourf(t1,t3,R_pure, cmap = 'seismic')

enter image description here

это в основном возвращает мне ту же форму графика. Вместо этого я хотел бы наложить нижний график на верх и сложить результат вместе. Есть ли способ, которым я могу достичь этого? Спасибо!

1 Ответ

0 голосов
/ 08 октября 2019

Я чувствую, что это слишком глупо, так что, вероятно, это неправильно.

R_pure = (R12_fft + abs(R45_fft))

enter image description here

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