首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TSNE - 3D图形

TSNE - 3D图形
EN

Stack Overflow用户
提问于 2018-09-04 13:55:39
回答 1查看 5.7K关注 0票数 0

把data ncollwcoll想象成4000左右的随机数。

我想通过TSNE运行它们,然后创建一个3维图。

如果我绘制这个图,我基本上会得到一个2D图,所以有些地方出了问题,但我不完全确定是什么。

最终,我想在同一个3D图上绘制红色的前半部分和蓝色的后半部分。

代码语言:javascript
复制
print(__doc__)

from time import time

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.ticker import NullFormatter

from sklearn import manifold
from sklearn.utils import check_random_state

c = 1000
 # Open File
ncoll_fn = "C:/Users/xxlassi/Downloads/trajectory_demo/trajectory_270252769939974_run__uid_-1808183947_tag_collision_0.0.txt"
wcoll_fn = "C:/Users/xxlassi/Downloads/trajectory_demo/trajectory_271551342150600_run__uid_-918721219_tag_collision_0.01.txt"

ncoll = []
wcoll = []

with open( ncoll_fn ) as f:
    ncoll = [ np.array([ float(el) for el in line.strip().split(',') ]) for line in f.readlines() ]
    ncoll = np.array( ncoll )

with open( wcoll_fn ) as f:
    wcoll = [ np.array([ float(el) for el in line.strip().split(',') ]) for line in f.readlines() ]
    wcoll = np.array( wcoll )

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

arr = np.concatenate((wcoll, ncoll), axis=0)
mid = int(len(arr)/2)
print (mid)

tsne = manifold.TSNE(n_components=3, init='pca',random_state=0, perplexity= 30, n_iter=5000)
trans_data = tsne.fit_transform(arr)

ax.scatter(arr[:,0][0:mid], arr[:,1][0:mid], c= 'r')
ax.scatter(arr[:,0][mid:], arr[:,1][mid:], c= 'b')

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.title("t-SNE")
plt.axis('tight')
plt.show()
EN

回答 1

Stack Overflow用户

发布于 2018-09-04 15:16:19

您需要使用3d散点绘制trans_data,以绘制t-SNE转换后的数据:

代码语言:javascript
复制
trans_data = tsne.fit_transform(arr)

ax.scatter(trans_data[:,0][0:mid], trans_data[:,1][0:mid], trans_data[:,2][0:mid], c= 'r', s = 100, marker='+')
ax.scatter(trans_data[:,0][mid:], trans_data[:,1][mid:], trans_data[:,2][mid:], c= 'b', s = 100, marker='.')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52159617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档