Python 如何在散点图中将异常值更改为其他颜色
如果我有这样的散点图Python 如何在散点图中将异常值更改为其他颜色,python,matplotlib,Python,Matplotlib,如果我有这样的散点图 我想知道是否有办法将明显的异常值(如顶部的三个)更改为同一绘图中的其他颜色?首先,您需要找到“异常值”的标准。一旦你有了这些,你就可以在你的图中掩盖那些不想要的点。 基于条件选择数组的子集可以在numpy中轻松完成,例如,如果a是一个numpy数组,a[a=1],y[np.abs(y)>=1],marker=“d”,color=“#d46f9f”) plt.show() 生产 在这里,我们从正态分布绘制点,对分布宽度以外的所有点进行不同的着色。有一个很好的答案。如果我有
我想知道是否有办法将明显的异常值(如顶部的三个)更改为同一绘图中的其他颜色?首先,您需要找到“异常值”的标准。一旦你有了这些,你就可以在你的图中掩盖那些不想要的点。 基于条件选择数组的子集可以在numpy中轻松完成,例如,如果
a
是一个numpy数组,a[a=1],y[np.abs(y)>=1],marker=“d”,color=“#d46f9f”)
plt.show()
生产
在这里,我们从正态分布绘制点,对分布宽度以外的所有点进行不同的着色。有一个很好的答案。如果我有一个对应于数据点枚举类别的数组(在将数据预先划分为类时特别有用),那么我将使用一个线性表达式
将图形划分为3个彩色区域的相应散点图:
这是一个很难回答的问题,因为离群值不是一个具有真实定义的术语。也许会有帮助。
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()
import numpy as np
import matplotlib.pyplot as plt
num = 1000
x= np.random.rand(1,100)
y= np.random.rand(1,100)*2
# Creating a simple data point classification criteria, classes in this case will be 0, 1 and 2
classes = np.round(y)
# Passing in the classes for the "c" argument is super convinient
plt.scatter(x,y, c=classes,cmap=plt.cm.Set1)
plt.show()