If I have a scatter plot like this
我想知道是否有任何方法可以将明显的异常值(例如顶部的三个)更改为同一图中的其他颜色?
首先,您需要找到“异常值”的标准。一旦你有了这个,你就可以掩盖图中那些不需要的点。
在 numpy 中可以轻松完成基于条件选择数组的子集,例如如果a
是一个 numpy 数组,a[a <= 1]
将返回所有值大于 1“cut out”的数组。
然后可以按如下方式进行绘图
import numpy as np
import matplotlib.pyplot as plt
num= 1000
x= np.linspace(0,100, num=num)
y= np.random.normal(size=num)
fig=plt.figure()
ax=fig.add_subplot(111)
# plot points inside distribution's width
ax.scatter(x[np.abs(y)<1], y[np.abs(y)<1], marker="s", color="#2e91be")
# plot points outside distribution's width
ax.scatter(x[np.abs(y)>=1], y[np.abs(y)>=1], marker="d", color="#d46f9f")
plt.show()
生产
在这里,我们绘制正态分布中的点,对分布宽度之外的所有点进行不同的着色。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)