0

我想使用 matplotlib 生成一个类似于这个的图形:

http://imgur.com/Pa254yn

在我的例子中,我实际上有两个方程,一个是线性的,一个是大致矩形的双曲线,我想展示一个迭代过程,通过该迭代过程,第二周期的稳定状态会演变。我可以很容易地绘制这两个函数,但是添加带有箭头的线段,通过对角线 x=y 演示曲线之间的振荡随时间的稳定状态。

字典引用是指确定函数确切形状的变量。我特别想知道如何绘制如下图中的线段,假设我可以生成必要的坐标。

此外,在第一个 y 轴正下方附加第二个 y 轴(但也许这应该是一个单独的问题)。

def rot_time_series(self):
    fig = plt.figure(figsize=(10, 10), frameon = False)
    ax1 = fig.add_subplot(211)
    ax2 = fig.add_subplot(212)


    x_vals = np.arange(0,100,0.1)
    values = np.empty([len(x_vals), 3])

    for i in range(len(x_vals)):
        y_A = self.mp['cA']['a'] * x_vals[i] + self.mp['cA']['b'] * x_vals[i] / (self.mp['cA']['c'] + x_vals[i])
        y_B = self.mp['cB']['a'] * x_vals[i]
        values[i,0] = x_vals[i]
        values[i, 1] = y_A
        values[i, 2] = y_B

    #mplot.rc('text', usetex=True)
    mplot.rc('font', family='serif')
    ax1.set_xlabel(r'$N_t$')
    ax1.set_ylabel(r'$N_{t+1}$')
    ax1.plot(values[:,0], values[:,0], color="black", linewidth=2, linestyle="-")
    ax1.plot(values[:,0], values[:,1], color="blue", linewidth=2, linestyle="--")
    ax1.plot(values[:,0], values[:,2], color="red", linewidth=2, linestyle="-.")
    plt.show()
4

0 回答 0