我想使用 matplotlib 生成一个类似于这个的图形:
在我的例子中,我实际上有两个方程,一个是线性的,一个是大致矩形的双曲线,我想展示一个迭代过程,通过该迭代过程,第二周期的稳定状态会演变。我可以很容易地绘制这两个函数,但是添加带有箭头的线段,通过对角线 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()