如何在python中绘制500对连续的随机数字?
我是python的新手,我正在处理的其中一个问题是绘制500对连续的随机数。 我有一个公式可以产生下面显示的数字:
x轴
>>> a=128
>>> c=0
>>> m=509
>>> n=500
>>> seed = 10
>>> for i in range (1,n):
new_seed=(a*seed+c)%m
seed = new_seed
print new_seed
y轴
>>> a=269
>>> c=0
>>> m=2048
>>> n=500
>>> seed = 10
>>> for i in range (1,n):
new_seed=(a*seed+c)%m
seed = new_seed
print new_seed
我现在想知道的是如何将这些结果转换为数组或列表。 我试图把plt.plot(new_seed)放到循环语句中,但是当我试图绘图时没有奏效。 有任何想法吗?
我使用import matplotlib.pyplot作为plt
先谢谢您的帮助!!
你可能应该做一些(更多)python教程。列表是Python的一个基本方面,它似乎你不了解它们...
import matplotlib.pyplot as plt
import random
x = []
a,seed,c,m,n = 128,10,0,509,500
for i in range (1,n):
new_seed=(a*seed+c)%m
seed = new_seed
x.append( new_seed)
a,seed,c,m,n = 269,10,0,2048,500
y= []
for i in range (1,n):
new_seed=(a*seed+c)%m
seed = new_seed
y.append( new_seed)
plt.plot(x,y)
plt.show()
您正在打印数字( print new_seed
),如果您想要绘制这些数字,这些数字不会有任何用处。 那有意义吗?
您应该做的是将每个数字保存到列表中的下一个可用位置。 一个简单的方法是在循环之前创建一个空列表,并且每次生成一个数字时,只需append
它append
到列表中而不是打印它。
xlist = []
for i in xrange(n):
new_seed = # generate the number
xlist.append(new_seed)
和ylist
。
在实践中,你会做的是使用列表理解,如下所示:
xlist = [generate_number(...) for i in xrange(n)]
这只是我上面写的一个简写语法。 (好吧,它也运行得更快)它确实需要你在函数中封装生成随机数的过程,但无论如何这是一个好主意。
然后你可以使用matplotlib来绘制xlist
和ylist
。
上一篇: How to plot 500 pairs of successive random numbers in python?
下一篇: Building a service for my website that has some foursquare features