Issue
So to explain the whole point of my code, I have thousands of points to be plot. The problem is for a given x value I have multiple y value so my plot doesn't represent a function. To fix this I wanted to take the max y values for every x points.
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))
The issue with this code is that it maps all points of x to a single y value and this is because taking the max value of the list d gives me 1 point. How can I take the max value of list, d, for every h value. So that for instance for h=257 I have a list that is different that for h=258 and so on for all values h>256
Solution
is this what you're trying to achieve?
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()
Answered By - OM222O
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.