matplotlib展示了什么?

时间:2017-11-22 06:49:44

标签: python matplotlib

我使用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()

1 个答案:

答案 0 :(得分:0)

因此,问题在于如何填充两个数组rrresx。在绘图之前通过

打印出两个数组
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=0i>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()

会给你这样的东西:

enter image description here