我在可视化一组等高线图的数据时遇到了一些困难。问题在于,我的数据点(X,Y,Z)中的Z值范围从大约2到0,而很多有趣的特征都位于0到0.3的范围内。使用普通的缩放比例,它们很难看到,如下图所示:
现在,我考虑还能做些什么。当然,可以使用对数缩放,但是首先需要考虑某种映射方式,我不确定如何做到100%。受this question的启发,可以考虑一种类型的映射scaling(x) = Log(x/min)/Log(max/min)
,在那个问题中效果还不错。
同样有趣的是后续discussed here。
他们使用了某种ArcSinh
缩放函数。这似乎相当不错地扩大了小特征,与整体成比例。
因此,我的问题在某种程度上是双重的。
如何缩放我的等高线图数据,使小幅振荡特征不会被异常值吹走?
您会使用上述任一方法或完全不同的方法进行处理吗?
为了完整起见,我上传了数据文件(上传站点是robustfiles.com,一个快速的谷歌搜索告诉我这是一个值得信赖的网站,可以分享这些东西)
我用以下内容绘制了上述图表:
data = np.load("D:\SavedData\ThreeQubitRess44SpecHighResNormalFreqs.npy")
fig, (ax1) = plt.subplots(1,figsize=(16,16))
cs = ax1.contourf(X, Y, data, 210, alpha=1,cmap='jet')
fig.colorbar(cs, ax=ax1, shrink=0.9)
ax1.set_title("Freq vs B")
ax1.set_ylabel('Frequency (GHz)'); ax1.set_xlabel('B (arb.)')