我需要绘制一组点,并且在同一个图上绘制一个函数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]
我可以将它们绘制为散点图,但如何将两者结合起来,最好对曲线下的点进行颜色编码?

最佳答案

可以将分散点分为两个列表,一个用于线下的点,另一个用于线上的点。然后可以绘制两个列表。
您的数据将被插入,而不是点x和点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()

产生类似于:
python - Matplotlib中某个函数区域下数据的散点图着色-LMLPHP

关于python - Matplotlib中某个函数区域下数据的散点图着色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49313488/

10-12 17:57