我有以下代码将多维缩放应用于名为parkinsonData
的数据样本:
iterations=4
count=0
while(count<iterations):
mds1=manifold.MDS(n_components=2, max_iter=3000)
pos=mds1.fit(parkinsonData).embedding_
plt.scatter(pos[:, 0], pos[:, 1])
count=count+1
有了这个,我得到了这个MDS算法的4个不同的图,由于随机种子,它们都不同。这些图具有不同的颜色,但是
parkinsonData
有一个名为status
的列,该列具有0或1个值,我想在每个具有不同颜色的图中显示这种差异。例如,我要实现:
在状态字段中使用一种颜色表示0值的一种绘图,在状态字段中使用一种颜色表示1值的另一种颜色。
第二种绘图,在状态字段中用一种颜色表示0值,在状态字段中用另一种颜色表示1个值。 (两种颜色均与第一张图不同)
第三种情节在状态字段中使用一种颜色表示0值,在状态字段中使用另一种颜色表示1个值。 (两种颜色均与第一图和第二图不同)
第四个图在状态字段中使用一种颜色表示0值,在状态字段中使用另一种颜色表示1个值。 (两种颜色均与第一,第二和第三图不同)
有谁知道如何实现这种预期的行为?
最佳答案
你可以做这样的事情
%matplotlib inline
import matplotlib.pyplot as plt
# example data
Y = [[ 1 , 2 , 3 ,6], [ 1 , 2 , 3 ,6], [ 1 , 2 , 3 ,6], [ 1 , 2 , 3 ,6]]
X = [[ 1 , 2 , 4 ,5], [ 1 , 2 , 3 ,6], [ 1 , 2 , 3 ,6], [ 1 , 2 , 3 ,6]]
status = [[0,1,0,0], [0,0,1,1], [1,1,0,0], [0,1,0,1]]
# create a list of list of unique colors for 4 plots
my_colors = [['red','green'],['blue','black'],['magenta','grey'],['purple','cyan']]
iterations=4
count=0
while(count<iterations):
plt.figure()
for i,j in enumerate(X):
plt.scatter(X[count][i],Y[count][i],color = my_colors[count][status[count][i]])
count=count+1
plt.show()
导致(我仅附加2张图像,但是使用唯一的颜色集创建了4张图像)
关于python - 多维缩放到python中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43689249/