这就是你要的吗?在import numpy as np
from matplotlib import pyplot as plt
data1 = [np.random.normal(0,0.1, 10), np.random.normal(0,0.1,10)]
data2 = [np.random.normal(1,0.2, 10), np.random.normal(2,0.3,10)]
data3 = [np.random.normal(-2,0.1, 10), np.random.normal(1,0.5,10)]
plt.scatter(data1[0],data1[1])
plt.scatter(data2[0],data2[1])
plt.scatter(data3[0],data3[1])
plt.show()
三个不同数据集的结果如下:
编辑:
希望我现在能更好地理解你的问题。新代码如下:
^{pr2}$
我分别用id 0, 1, and 2为作业命名'A', 'B', and 'C'。从emp的最后一行,我创建了一个numpy数组来保存这些索引。在关键的绘图命令中,我使用作业ID屏蔽数据。希望这有帮助。在
结果图如下:
编辑2:
如果您只想在一个图中相互关联,例如,X_pca的第一列和第二列,则代码将变得更简单:import numpy as np
from matplotlib import pyplot as plt
with open(r'mydata.txt') as f:
emp= []
for line in f:
line = line.split()
if line:
line = [int(i) for i in line]
emp.append(line)
from sklearn.decomposition import PCA
import pylab as pl
from itertools import cycle
X = emp
pca = PCA(n_components=3, whiten=True).fit(X)
X_pca = pca.transform(X) #regular PCA
jobs = ['A', 'B', 'C']
job_id = np.array([e[4] for e in emp])
row = 0
col = 1
plt.scatter(X_pca[:,row][job_id==0],X_pca[:,col][job_id==0],c='r')
plt.scatter(X_pca[:,row][job_id==1],X_pca[:,col][job_id==1],c='g')
plt.scatter(X_pca[:,row][job_id==2],X_pca[:,col][job_id==2],c='b')
plt.show()
结果如下:
我强烈建议您阅读这些示例中使用的函数的文档。在