我很抱歉这个冗长的标题,但我找不到一个清晰的表达方式。我在这里要完成的任务是,给定三个包含坐标矩阵(X,Y)的数组,以及在这个网格(Z)中对一个实函数的求值,得到数据的等高线图。但是,有些坐标会让位于不可接受的Z值,因此不应在绘图中考虑。到目前为止我所做的:
cmap = plt.cm.get_cmap("winter")
cmap.set_under("magenta")
cmap.set_over("yellow")
with PdfPages('myplot.pdf') as pdf:
fig = plt.figure()
CS = plt.contourf(X, Y, Z, cmap=cmap)
cbar = plt.colorbar(CS)
cbar.ax.set_ylabel('Z')
plt.xlabel('X (\AA)')
plt.ylabel('Y (\AA)')
plt.tight_layout()
pdf.savefig(fig)
但是,我没有找到一种适当的方法来限制应该在绘图中考虑的值(类似于Zmin < Z < Zmax
)。我考虑过set_under
和{
有几种方法可以达到预期效果:
1)直接按如下方式对Z值加上上限,然后绘制结果数组:
2)使用
^{pr2}$vmin
和vmax
参数重新缩放colorbar:编辑:
误解了你的问题/意图。如果要标记超出范围的值, 然后将它们设置为NaNs(在这种情况下,相应的位置将为白色),或者使用}参数。在
set_under
/set_over
方法和vmin
和{1)将超出范围的值设置为NaN:
^{3}$2)
set_under
和set_over
,然后使用vmin
和vmax
参数设置限制:相关问题 更多 >
编程相关推荐