gpt4 book ai didi

python - 具有基于列名称的图例的 T-SNE 散点图

转载 作者:行者123 更新时间:2023-11-30 09:59:03 25 4
gpt4 key购买 nike

我的 T-SNE 散点图打印得很好,但打印出的颜色全部相同并且没有图例。我在这方面遇到了很大的麻烦。对于 SeaBorn 来说,它是“hue”,对于 Matplotlib 来说,它是定义“c”。总而言之,我确实需要帮助定义具有 A 、B、C (列名称)的图例并将其(A、B、C)链接到散点图上的颜色。

我的数据如下:

  A    B    C
1.0 2.0 3.0
4.0 5.0 6.0
7.0 8.0 9.0

a = pd.DataFrame(data_files, columns = ['A'])
b = pd.DataFrame(data_files, columns = ['B'])
c = pd.DataFrame(data_files, columns = ['C'])

test_array = [a,b,c]
data_elem = pd.concat(test_array, axis = 1, sort = False)

model = TSNE(n_components = 2, perplexity = 50, learning_rate = 100, random_state = None)
tsne_data = model.fit_transform(data_elem)
tsne_df = pd.DataFrame(tsne_data)

htw = tsne_df.to_numpy(copy = True)
tsne_df['tsne_x'] = htw[:, 0]
tsne_df['tsne_y'] = htw[:, 1]

sns.scatterplot(
x = "tsne_x",
y = "tsne_y",
#hue = "", <--issue is here
palette = "Greens",
data = tsne_df,
legend = "full",
alpha = 0.3

)

plt.xlabel("Dimension_X")
plt.ylabel("Dimension_Y")

plt.legend(loc = 'upper right')
plt.show()

我尝试过的方法都不起作用。如果您使用 matplotlib,我会通过尝试定义“hue”或“c”不断收到错误,即 KeyError 或其他错误

最佳答案

我相信我已经解决了。确保在将 DataFrame 放入 T-SNE 之前将数据与标签分开。

data_elem_data                  = data_elem
data_elem_label = labels go here (must be 1 dimensional)

对我来说,在将 data_elem_label 与所有内容结合之前,我需要将其展平。

data_elem_label  = data_elem_label.values.flatten() 

T-SNE 创建两列 (x,y),因此添加第三列,这将是标签列。所以...将分离的标签列(从头开始)添加到完成的T-SNE中。

即:

tsne_df = pd.concat([tsne_df, pd.Series(data_elem_label)], axis = 1) 

这对我有用。

关于python - 具有基于列名称的图例的 T-SNE 散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59791217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com