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()
这是官网上的一个例子,效果图如下:
我们来对上面的一些函数的参数进行解读。
- x
表示要描绘的点的横坐标 - y
要描绘的店的做坐标从,是一个array或者一个list - s
默认描绘的是一个圆形的点,s表示的点的大小,可以是一个具体的数字,也可以是一个list的形式,要求跟点的个数保持一致; - c
表示描绘的点的颜色,颜色参考这里 - alpha
表示描绘的颜色的透明度,从0-1表示透明到不透明;
除了以上参数之外,其实还有一些参数可以使用:
-
marker
可以选择的值包括:- ‘o’ 表示圆形
- ‘d’ 表示菱形
可以参考这篇文章
-
edgecolors
可以给描绘的点加上边框,设置边框的颜色,也可以设置边框的粗度。
plot
用来在两个点之间添加一条线段:
plt.plot([x0, x1], [y0, y1], color='r')
一幅图中有两个点集合,用不同的颜色和形状描绘
这个其实只需要plt.scater函数写两遍,传入不同的参数就可以了。
不过需要注意的时候,如果是把高维空间的点降维之后显示的,最好把两个点集合放在同一个数组里面,再去降维,因为如果用tsne的话,是保证点的相对位置保持不变,如果放在不同的集合,可能降维之后不在同一个空间中。