matplotlib 有没有一种方法可以将新的值添加到列表中,而不将它们合并到一个列表中?

mnowg1ta  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(102)

所以为了解释我的代码的全部意义,我有数千个点要绘制。问题是对于给定的 x 值,我有多个 y 值,所以我的图不能表示函数。为了解决这个问题,我想为每个x点取最大的y值。

test_list=[(257.4, -6.0), (654.3, -3.0),(257.4, -9.0),(754.3, -0.0),(354.3, -11.0),(257.4, -5.0),(454.3, -10.0)] # example of pairs of points to be plot
x, y = zip(*test_list)
d=[]
for h,j in test_list:
    if int(h)>256:
        d.append(j)
        plt.plot(int(h),max(d),".")
print(max(d))

字符串
这段代码的问题在于它将x的所有点Map到一个y值,这是因为取列表 d 的最大值给我1个点。我怎么能对每个h值取列表d的最大值呢?例如,对于h=257,我有一个与h=258不同的列表,等等,对于所有h>256的值,

xtupzzrd

xtupzzrd1#

这就是你想达到的目的吗

test_list=[(257.4, -6.0), (654.3, -3.0),(257.4, -9.0),(754.3, -0.0),(354.3, -11.0),(257.4, -5.0),(454.3, -10.0)] # example of pairs of points to be plot

points = dict()
for x,y in test_list:
    if x not in points or points[x]<y:
        points[x]=y

x,y = zip(*points.items())
plt.figure()
plt.plot(x, y, '.')
plt.show()

字符串

相关问题