首页 > 解决方案 > 缺失值的 pcolormesh 帐户

问题描述

我正在使用以下代码来可视化 2D Ising 模型的演变:

Plot = plt.figure()

for i, _ in enumerate(SamplePoints):
    Plot.add_subplot(PlotSpace, PlotSpace, i+1) 
    plt.tick_params(left = False, right = False, labelleft = False,
                    labelbottom = False, bottom = False)  
    plt.pcolor(State[:,:,i], cmap=plt.cm.RdBu)
    plt.title("System after %g steps" %(SamplePoints[i]))
    plt.axis('tight')
plt.suptitle("Evolution of a %d x %d lattice of spins. T = %g, H = %g"
             % (Size, Size, T, H))   
plt.tight_layout()

H 和 T 只是数字。

它从 Ising 模型的模拟中获取一个列表、SamplePoints 和一个状态列表,该模型是一个 3D 数组,每个 2D 'slice' 是一个 1 和 -1 的数组,对应于样本点的系统。我遇到的问题是:当系统在低温下平衡时,状态变为1 或-1。我猜这会导致它突然从显示 1 的蓝色切换到红色,因为 1 突然从最高值变为最低(唯一)值,这会导致如下奇怪的行为:

pcolormesh 行为怪异

我怎样才能让它像考虑 1 和 -1 一样为事物着色,即使它只是“看到”一个?

标签: pythonmatplotlibsimulation

解决方案


推荐阅读