我使用matplotlib绘制两个数组中值的结果,但结果显示了一个不在我的数组中的点(0,0)。其他要点是正确的,但只有这一点。以下是我的代码。
import math
import numpy as np
import matplotlib.pyplot as plt
j=0
x=0.6
resx = np.zeros((100, 100))
rr=np.zeros((1, 100))
for r in np.linspace(2.4, 4, 100):
rr[0,j] = r
for i in range(0, 100):
x = r * x * (1-x)
resx[j,i] = x
plt.plot(rr[0,:], resx[:,j], '.')
j=j+1
plt.show()
答案 0 :(得分:0)
因此,问题在于如何填充两个数组rr
和resx
。在绘图之前通过
print rr[0,:]
print resx[:,j]
将为您提供表格
的数组[ x_1 ... x_(j) x_(j+1) ... x_100 ]
[ y_1 ... y_(j) y_(j+1) ... y_100 ]
其中x_i=y_i=0
为i>j
。如果这是预期的,并且您希望避免绘制点(0,0)(顺便绘制多次),您可能无法绘制最后100-j
个值:
import math
import numpy as np
import matplotlib.pyplot as plt
x=0.6
resx = np.zeros((100, 100))
rr=np.zeros((1, 100))
for j,r in enumerate(np.linspace(2.4, 4, 100)):
# Populate x-array
rr[0,j] = r
# Populate y-array
for i in range(0, 100):
x = r * x * (1-x)
resx[j,i] = x
# Only plot last n-j values
plt.plot(rr[0,:j], resx[:j,j], '.')
plt.show()
会给你这样的东西: