我需要绘制一堆点,并在同一图表上绘制函数cosx。我们的想法是看到曲线下面的点。
我有cosx的图表:
x = np.linspace(0, np.pi) #x range between 0 and pi
y = np.cos(x)
plt.plot(x, y)
plt.show()
现在我需要绘制x = [2, 0.9, 2.6, 3.1]
和y = [0.1, 0.4, 0.5, 0.2]
我可以将它们绘制成散点图但是我如何将两者结合起来,最好将颜色代码组合成曲线下面的点?
答案 0 :(得分:4)
您可以将散点分成两个列表,一个用于线下的点,另一个用于线上的点。然后你可以绘制两个列表。
您的数据将被插入而不是points_x和points_y
中的随机数import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, np.pi) #x range between 0 and pi
y = np.cos(x)
N = 100
points_x = np.random.rand(N)*np.pi
points_y = np.random.rand(N)*2.-1.
points_over = [(xi,yi) for xi,yi in zip(points_x,points_y) if np.cos(xi) < yi]
points_under = [(xi,yi) for xi,yi in zip(points_x,points_y) if np.cos(xi) >= yi]
plt.plot(x, y)
plt.scatter(*zip(*points_over),c='g')
plt.scatter(*zip(*points_under),c='r')
plt.show()
制作类似:
的内容