Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将一个图形的输出添加到另一个图形_Python_Contour - Fatal编程技术网

Python 将一个图形的输出添加到另一个图形

Python 将一个图形的输出添加到另一个图形,python,contour,Python,Contour,我想找到一种方法,将底部的图(从y=-20到0)转换并添加到上面的图(从y=0-20)上,以便最终的域在y=0到20之间: 但是,我发现这样做有问题,因为我用来绘制底部图形(R12)的图形已经有一个负输入,因此它不会显示在正y轴上。这是我的密码: from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np N = 1001 lower = 0 upper = 20 u =

我想找到一种方法,将底部的图(从y=-20到0)转换并添加到上面的图(从y=0-20)上,以便最终的域在y=0到20之间:

但是,我发现这样做有问题,因为我用来绘制底部图形(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')


它基本上给了我相同的图形形状。相反,我希望将底部的图形叠加到顶部,并将输出相加。我有什么办法可以做到这一点吗?谢谢大家!

我觉得这有点太傻了,所以可能是错的

R_pure = (R12_fft + abs(R45_fft))

你确定这不是两张图的总和吗?我只是在看颜色栏上的范围。(你可以用两个不同的形状来测试它)@Steve这是总和,但它不是正确的,因为底部的图形刚刚被反映在x轴上,并与顶部的图形一起添加,我想要的是在底部的图形被“剪切”并置于顶部时添加顶部的图形。希望这能澄清问题。为了澄清问题,目前您的底部图表反映的是
y=0
,但您希望将其翻译为
y=y+20
?@Steve Yes,我想将该图表添加到上面的图表中。而不是
R_pure=(R12_fft+R45_fft)
您能将
R45_fft
翻转为
R45_fft[:-1,:]/code>(或者可能是
R45_fft[:,::-1]
)并加上它?嗯,我想是的,我能问一下你是如何做到的吗?@LinusChoy See edit.+我调整了绘图的比例。