擅长:python、mysql、java
<p>假设我对你的理解正确,我会这样做:</p>
<pre><code>zd = np.zeros_like(z, dtype=int)
zd[z > 0] = 1
zd[z < 0] = -1
</code></pre>
<p>然后绘制<code>zd</code>而不是<code>z</code></p>
<p>另外请注意,最好直接从<code>matplotlib</code>使用<code>imshow</code>,这样可以获得更好的轴标签,例如:</p>
<pre><code>plt.figure(figsize=(8,8))
plt.imshow(zd, extent=(2, 4, 5, 0.5), aspect='auto')
plt.colorbar()
</code></pre>
<p><code>imshow</code>不会像<code>heatmap</code>那样对值进行任何重缩放,这可能更适合您的用例</p>
<p>此外,似乎还有很多未定义的值,因此可能需要对它们进行特殊处理,例如:</p>
<pre><code>zd[~np.isfinite(z)] = 0
</code></pre>
<p>给出最终的绘图:</p>
<p><a href="https://i.stack.imgur.com/woiHz.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/woiHz.png" alt="implot"/></a></p>
<p>但我不确定我是否把斧子弄对了</p>