任务描述:
在Python扩展库Matplotlib中,函数spy()用来绘制和显示二维数组的稀疏模式,即使用散点符号显示二位数字中的非0位置。其完整用法如下:
spy(Z, precision=0, marker=None,
markersize=None, aspect='equal',
origin='upper', **kwargs)
下面的代码生成一个二维随机数组,然后将其中一部分元素的值设置为0,调用spy()函数可视化这个数组,大部分参数使用默认值。
运行结果:
从绘图结果来看,spy()函数实际上就是绘制了散点图,理论上讲也可以使用scatter()来实现,该函数完整语法为:
scatter(x, y, s=None, c=None, marker=None,
cmap=None, norm=None, vmin=None,
vmax=None, alpha=None, linewidths=None,
*, edgecolors=None, plotnonfinite=False,
data=None, **kwargs)
但如果直接调用scatter()函数在非0位次绘制散点图的话得到的图形并不完全一样,代码如下图所示:
运行结果:
出现这种情况的原因是两个函数使用的参数中对位置的定义不一样,通过调整scatter()函数的参数可以达到这一目的,代码如下:
运行结果:
现在两个图形的核心部分已经一样了,但是外围还略有区别,继续修改代码:
运行结果: