matplotlib是否显示期望值?

2024-04-29 10:41:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 代码inimportformatplotlibasnprr
1条回答
网友
1楼 · 发布于 2024-04-29 10:41:03

因此,问题是如何填充两个数组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=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()

这会给你类似的东西:

enter image description here

相关问题 更多 >