Calculate each updated value and its corresponding random and then graph them
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import random
#import matplotlib.pyplot as plt
a1 = ['','','?','']
a2 = [10,25,43.34,90]
i = 0
i_array = []
while i < 10:
i_array.append(i)
i = i + 1
r = random.random()
for i, j in enumerate(a1):
if j == '?':
print(a2[i]*r)
a3 = a2[i]*r
plt.line(r,a3) |
我在A1中的问号可以在这四个位置中的任何位置。因此,A2中对应的值需要改变。答案是:随机进口#将matplotlib.pyplot导入为plt
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| a1 = ['','','?','']
a2 = [10,25,43.34,90]
xarray=[]
yarray=[]
i = 0
i_array = []#probably can delete this, I don't see any reason for it
for i in range(0,10):#use a for loop instead
i_array.append(i)
r = random.random()
a3 = a2[a1.index('?')]*r#index here instead of the for loop
print(a3)#since your assigning a3 anyway, might as well print that
xarray.append(r)#plot needs arrays
yarray.append(a3)
plt.plot(xarray,yarray)#plot your arrays |
你能详细说明一下你想在这里做什么吗?似乎您正在尝试根据"?"的位置选择A2中的值。包含在a1中,然后乘以a2[索引为?在a1]中,用一个随机数,并用y轴上的乘积和x轴上的随机数绘制图表。基于这个假设,有几种选择。最明显的是使用index()方法,请参见以下问题:python:在数组中查找元素。或者,如果"?"也就是说随机放在a1中,那么随机查找a2的索引比使用两个列表更简单。使用以下a2[random.ranint(0, len(a2)-1)]进行此操作。(这里的文档:https://docs.python.org/2/library/random.html)另外,我不是Pyplot的专家,但看起来您对plt.line(r,a3)的调用可能不会像您希望的那样工作。根据我想您要做的,您可能希望在循环的每个迭代中将r和a3附加到两个单独的列表(例如r list、a3 list),然后调用plt.plot(rlist, a3list)。最后,虽然while循环没有错,但您似乎将其用作for循环,因此您也可以这样做(for i in range(0,10):)
- 似乎您正在尝试根据"?"的位置选择A2中的值。包含在a1中,然后乘以a2[索引为?在a1]中,用一个随机数,并用y轴上的乘积和x轴上的随机数绘制图表。是的,这正是我想做的。我根本不知道该怎么做。你能帮个忙吗?
- 我想我明白了。但是,我可能会回来的。我用过:for i, j in enumerate(a1): if j == '?': print(a2[i])还没有在循环中尝试过。
- 我更新了密码。我有一个无限循环。我该怎么解决?
- 我认为您正在过度复杂化这一点;实际上您正在为已经存在的函数编写代码。如上所述,您可能只想使用index()函数:a2[a1.index('?')]
- 你能告诉我我该把它放哪儿吗?因为我不知道。
- 我明白了。谢谢!
- 如何将所有10个值组合起来以便绘制图表?
- i_array=[]arraythatyouneedtoadd=[]secondarraythatyoushouldadd=[]for i in range(0,10):i_array.append(i)不确定这行用于r=random.random()打印(a2[a1.index('?')]*r)a3=a2[a1.索引('?')]*R arraythatyouneedtodd.append(R)secondarraythatyoushouldadd.append(A3)plt.line(arraythatyouneedtodd,secondarraythatyoushouldadd)
- 哎呀,那应该是一个代码块;无论如何,你可以尝试复制粘贴它并理解它,但是请重新阅读我上面的答案:完全忘记第二个for循环,并使用a1.index("?")。.然后创建一些新的数组,并将a3和r附加到它们上。
- 至于将十个值放在一起,这就是为什么需要追加到单独的数组中,例如newarray=[],newarray.append(a3)plt.plot(newarray,)
- 你能把它做成代码块吗?我不知道这是什么意思
- 添加了一个编辑,它应该有精确的解决方案。附言:如果你喜欢答案,请接受(除了编辑):)
- 图表看起来不错。但是,它一点也不清楚,我不想把随机值从低到高排列起来,然后画出图表,或者不管它是怎么做的。我要按顺序进行。我有一条直线,这是错误的。
- 它的形状应该与本页的形状类似,带有线条和标记(橙色):plot.ly/python/line-and-scatter
- 我不确定您的意思,但是您可以尝试向绘图函数添加一个可选参数,该参数将在您点之间绘制一条线。请参阅以下教程:matplotlib.org/users/pyplot_tutorial.html。用‘-’来称呼情节会让你在你的观点之间产生冲刺。