Python 3.x 如何重新创建这些图形?

Python 3.x 如何重新创建这些图形?,python-3.x,matplotlib,graph,Python 3.x,Matplotlib,Graph,我希望重新创建这些图,如所示: 我需要让他们在正确的顺序,我也不确定什么k值,我需要为每个图形使用。 我尝试了一些k值,但似乎没有得到正确的结果。我的代码如下所示。 任何帮助都会很好,谢谢 #define parameters k1= np.linspace(0,1,2) k2=1 n1=3 n2=3 K1=0.3 K2=0.3 beta1=0 beta2=0.05 x = np.linspace(0,1) def r_inact_1loop(x,k1=1): #np.linspac

我希望重新创建这些图,如所示:

我需要让他们在正确的顺序,我也不确定什么k值,我需要为每个图形使用。 我尝试了一些k值,但似乎没有得到正确的结果。我的代码如下所示。 任何帮助都会很好,谢谢

#define parameters
k1= np.linspace(0,1,2)
k2=1
n1=3
n2=3
K1=0.3
K2=0.3
beta1=0
beta2=0.05
x = np.linspace(0,1)
def r_inact_1loop(x,k1=1):      #np.linspace(10,0,0.5)): #k1=1
    return k1*x
def r_activation(x,k1=1):     #np.linspace(0,1,2.5))
    return k2*(beta2*K2**n2/(K2**n2+x**n2) + x**n2/(K2**n2+x**n2))*(1-x)
def r_inact_2loop(x,k1=1):   #np.linspace(2.5,0,1)):
    return k1*(beta1*x**n1/(K1**n1+x**n1) + K1**n1/(K1**n1+x**n1))*x

#graphs
fig = plt.figure(figsize=(16,5))

ax1 = fig.add_subplot(1,3,1)
ax2 = fig.add_subplot(1,3,2)
ax3 = fig.add_subplot(1,3,3)
ax1.set_xlabel('Fraction of activated A')
ax2.set_xlabel('Fraction of activated A')
ax3.set_xlabel('Fraction of activated A')
ax1.set_ylabel('Rate of A inactivation or activation')
ax2.set_ylabel('Rate of A inactivation or activation')
ax3.set_ylabel('Rate of A inactivation or activation')

for k in k1: #k1
    ax1.plot(x, r_inact_1loop(x,k),label='in1 k1={:.1f}'.format(k))
    ax1.plot(x, r_activation(x,k),label='ac k1={:.1f}'.format(k))
    #ax1.legend(loc='best')
    ax2.plot(x, r_inact_1loop(x,k),label='in1 k1={:.1f}'.format(k))
    ax2.plot(x, r_inact_2loop(x,k),label='in2 k1={:.1f}'.format(k))
    #ax2.legend(loc='best')
    ax3.plot(x, r_activation(x,k),label='ac k1={:.1f}'.format(k))
    ax3.plot(x, r_inact_2loop(x,k),label='in2 k1={:.1f}'.format(k))
    #ax3.legend(loc='best')
    plt.xlim(0,1)
    plt.ylim(0,0.7)
plt.show()

首先,您的
r\u激活功能对我来说似乎不正确:

def r_activation(x,k1=1):     #np.linspace(0,1,2.5))
    return k2*(beta2*K2**n2/(K2**n2+x**n2) + x**n2/(K2**n2+x**n2))*(1-x)
未使用参数
k1

第二,对于第一个绘图,激活曲线可以通过
r\u inact\u 1loop
函数生成,其中
1-x
作为第一个参数,而不是
x

第三,以不同的线型绘制了不同k的激活/失活曲线,以说明不同的
k
对激活/失活的影响

k=1
ax1.plot(x, r_inact_1loop(x,k),label='in1 k1={:.1f}'.format(k), c='r')
ax1.plot(x, r_inact_1loop((1-x),k),label='ac k1={:.1f}'.format(k), c='b')
ax1.plot(x, r_inact_1loop((1-x),k*0.5),label='ac k1={:.1f}'.format(k), c='b', ls='--')
#ax1.plot(x, r_activation(x,k),label='ac k1={:.1f}'.format(k))
#ax1.legend(loc='best')
ax2.plot(x, r_inact_1loop(x,k),label='in1 k1={:.1f}'.format(k), c='r')
ax2.plot(x, r_activation(x,k),label='ac k1={:.1f}'.format(k), c='b')
#ax2.plot(x, r_inact_2loop(x,k),label='in2 k1={:.1f}'.format(k))
#ax2.legend(loc='best')
ax3.plot(x, r_inact_2loop(x,k),label='in2 k1={:.1f}'.format(k), c='r')
ax3.plot(x, r_inact_2loop(x,k*2),label='in2 k1={:.1f}'.format(k), c='r', ls='--')
ax3.plot(x, r_activation(x,k),label='ac k1={:.1f}'.format(k), c='b')
#ax3.legend(loc='best')
plt.xlim(0,1)
plt.ylim(0,1)

第四,第三,原始图中的红色区域如下所示:保持激活曲线恒定,并改变失活曲线的
k
值,以使失活曲线和激活曲线至少截距(因此可能出现双稳态)。将有一组上界和下界
k
以使拦截成为可能,红色区域显示了
k
界(我想必须用数值求解
k
的上界和下界)