1

我有以下代码将多维缩放应用于名为的数据样本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有一个名为status0 或 1 值的列,我想在每个不同颜色的图中显示这种差异。

例如我想实现:

一张图,状态字段中的 0 值使用一种颜色,状态字段中的 1 值使用不同颜色。

第二个图,状态字段中的 0 值使用一种颜色,状态字段中的 1 值使用不同的颜色。(两种颜色都与第一个图不同)

第三个图,状态字段中的 0 值使用一种颜色,状态字段中的 1 值使用不同的颜色。(两种颜色都不同于第一个和第二个图)

第四个图,状态字段中的 0 值使用一种颜色,状态字段中的 1 值使用不同的颜色。(两种颜色都与第一、二、三图不同)

任何人都知道如何实现这种预期的行为?

4

1 回答 1

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 个图像是用独特的颜色集创建的)

在此处输入图像描述在此处输入图像描述

于 2017-04-28T22:33:47.673 回答