我将一组点保存为数据帧 dp:
xlist ylist
0 0.017108 0.902494
1 0.019659 0.741981
2 0.030310 0.920884
3 0.032064 0.255826
4 0.046168 0.562761
5 0.060758 0.583044
6 0.118274 1.000000
7 0.125385 1.000000
8 0.140418 1.000000
9 0.153699 1.000000
10 0.186998 0.293743
11 0.215375 0.112288
12 0.217875 0.260883
13 0.250591 0.325953
14 0.262788 0.084916
15 0.287382 0.104910
16 0.325902 0.088418
17 0.377885 0.312025
18 0.473086 0.068632
19 0.485449 0.059624
20 0.557334 0.734376
21 0.572133 0.709392
22 0.610553 0.840687
23 0.626902 0.737930
24 0.630276 0.084787
25 0.637779 0.091535
26 0.717553 0.074411
27 0.742187 0.092770
28 0.757873 0.532881
29 0.780933 0.528202
30 0.836708 0.422615
31 0.920814 0.359896
32 0.938639 0.355241
33 0.954564 0.280989
34 0.978567 0.649749
35 0.995067 0.769272
使用 pyplot.vlines 时,它们如下所示:
[plt.vlines(x,0,y) for x,y in zip(dp.xlist, dp.ylist)]
plt.show()
我想用以下代码替换 xlist:
x = linspace(0,1,num=100) ###(or num=200... not important)
并使用 ylist 中的值创建一个新的 y,其中 x 接近 xlist,并在其他位置为零。
到目前为止,我尝试的是对于每对 xlist、ylist 值,我检查我的线性空间中是否有一个点足够接近 xlist 中的点,然后为其分配相应的 ylist 值,否则,我放一个零。
for i in dp.index:
fill = []
for xa in x:
if abs(dp.xlist[i]-xa)<0.001:
tmp = dp.ylist[i]
else:
tmp = 0
fill.append(tmp)
但我想我正在覆盖列表“填充”,这就是为什么它不起作用,但我不知道如何解决这个问题。
有没有一种快速简单的方法可以实现这一目标?
拉风的咖菲猫
蝴蝶不菲