Plot 绘制点图

可视化能帮助我们更好的理解高维空间到底发生了什么。
一般可以使用matlba的pyplot来进行绘制:

import matplotlib.pyplot as plt

scatter

对二维空间点进行绘制,最简单的如下:

"""
Simple demo of a scatter plot.
"""
import numpy as np
import matplotlib.pyplot as plt


N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2  # 0 to 15 point radii

plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.show()

这是官网上的一个例子,效果图如下:
Plot 绘制点图

我们来对上面的一些函数的参数进行解读。

  • x
    表示要描绘的点的横坐标
  • y
    要描绘的店的做坐标从,是一个array或者一个list
  • s
    默认描绘的是一个圆形的点,s表示的点的大小,可以是一个具体的数字,也可以是一个list的形式,要求跟点的个数保持一致;
  • c
    表示描绘的点的颜色,颜色参考这里
  • alpha
    表示描绘的颜色的透明度,从0-1表示透明到不透明;

除了以上参数之外,其实还有一些参数可以使用:

  • marker
    可以选择的值包括:

  • edgecolors
    可以给描绘的点加上边框,设置边框的颜色,也可以设置边框的粗度。

plot

用来在两个点之间添加一条线段:

plt.plot([x0, x1], [y0, y1], color='r')

一幅图中有两个点集合,用不同的颜色和形状描绘

这个其实只需要plt.scater函数写两遍,传入不同的参数就可以了。
不过需要注意的时候,如果是把高维空间的点降维之后显示的,最好把两个点集合放在同一个数组里面,再去降维,因为如果用tsne的话,是保证点的相对位置保持不变,如果放在不同的集合,可能降维之后不在同一个空间中。