我想绘制一个包含三个不同图表的图。这是我的代码:
import numpy as np
from math import sqrt
import matplotlib.pyplot as plt
def make_sequence(N:int, alpha:float, beta:float) -> np.ndarray:
z_n = np.empty((N, 1))
for n in range(1, N+1):
z_n[n-1] = alpha*(1+sqrt(3))**n + beta*(1-sqrt(3))**n
return z_n
x0 = make_sequence(50, 0.0, 1.0)
x1 = make_sequence(50, 0.0, 99.0)
x2 = make_sequence(50, 5.0, 5.0)
plt.plot(x0, 'bo')
plt.plot(x1, 'ro')
plt.plot(x2, 'go')
plt.axis([0, 50, -2, 2])
plt.title(r'$z_1,...,z_{50}$')
plt.xlabel('n')
plt.legend([r'$\alpha =0$, $\beta =1$', r'$\alpha =0$, $\beta =99$', r'$\alpha =5$, $\beta =5$'])
plt.show()
为什么 x2 没有出现在绘图上?
如果我尝试单独绘制 x2,它仅在删除轴缩放命令时显示。
最佳答案
打印 min(x2)
和 max(x2)
显示 x2
范围从 10
到 ~3.3e22
。但是,您的 y 轴仅从 -2
到 2
。因此,x2
中的任何值都不在可见范围内。
您当然可以将比例更改为 plt.axis([0, 50, -2, 3.5e22])
,这将导致
但是,x0
和 x1
在图中不再清晰可见。您需要自己决定将所有 3 个系列绘制在同一个图中是否有意义。
关于python - 缩放轴时图表不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380414/