我有以下代码将多维缩放应用于名为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中的数据-LMLPHP python - 多维缩放到python中的数据-LMLPHP

关于python - 多维缩放到python中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43689249/

10-13 03:07