python - 散点图两个特征向量集在同一个图中
问题描述
我想在同一图中的散点图中绘制两个特征向量。我正在做 MNIST 的 PCA 分析。
当前的特征向量可以称为它Elements
有 784 行。
print Elements.shape
(784,)
我想在同一个图中绘制Elements[-20]
和Elements[-19]
散点图,并希望实现如下所示。
我正在努力将这两个元素添加到具有不同颜色的同一个图中。
plt.scatter(X[-20], X[-19], c= 'r')
只产生一种颜色,没有分散值的区别。
正如下面突出显示的那样,我的一些数据集是重叠的,因此下面的 SO 解决方案不起作用。解决方案
X[-20] 的前 20 个数据元素如下。
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
2.84343259e-03 6.22613687e-03 -7.95592208e-15 -1.69063344e-14
1.34798763e-14 0.00000000e+00 6.36473767e-14 -3.18236883e-14
解决方案
关于可视化问题
您似乎正在为您的情节添加一个标量。您需要做的是首先分离您的数据,然后为每个集合绘制一个图。像这样:
import numpy as np
import matplotlib.pyplot as plt
def populate(a=2,b=5,dev=10, number=400):
X = np.random.uniform(0, 50, number)
Y = a*X+b + np.random.normal(0, dev, X.shape[0])
return X, Y
num = 3000
x1, y1 = populate(number=num)
x2, y2 = populate(-0.2, 110, number=num)
x = np.hstack((x1, x2))
y = np.hstack((y1, y2))
fig, ax = plt.subplots(nrows=1, ncols=1)
plt.scatter(x[:num], y[:num], color="blue", alpha=0.3)
plt.scatter(x[num:], y[num:], color="red", alpha=0.3)
ax = plt.gca()
howblack = 0.15
ax.set_facecolor((howblack, howblack, howblack))
plt.show()
,结果如下:
有数字程序可以分离您的数据,但这不是可视化问题。有关一些聚类方法,请参阅scikit-learn。在您的示例中,假设Elements
是某种数组,您需要找到一种方法来分离数据。
关于特征向量
散点图通常假设您至少有 X 和 Y 数据(因此是 2D 或更多)。
您似乎指的是一个特征向量,这显然不是足够的信息,因为向量的 700 个维度并不容易显示。因此,您需要在散点图中决定什么是 X,什么是 Y,以及将什么分成不同颜色的群体。
推荐阅读
- react-native - 如何使我的堆栈导航高效?
- r - 是否有用于删除特定列条件的 R 函数
- python - 从同一个函数中调用一个函数是否安全
- python-3.x - 当我尝试为 python 导入 matplotlib 时出现错误的原因是什么?
- elasticsearch - 具有动态数据/nested_objects 的聚合
- android - 如何使用 Flutter App 读取 Android 10 设备文件
- ios - 在 navigationView、SwiftUI 上创建一个视图
- bash - 如何将标准输出定向到两个管道?
- ios - 移动 Safari (iOS):不再转换 + 缩小视频
- reactjs - React Apollo SSR 并获取查询结果