python - 如何制作带有未定义区域的彩色图?

标签 python matplotlib

假设我有一个类似的函数

def coulomb(x,y):
    r = sqrt(x**2 + y**2)
    return 1/r if r > 1 else None

我怎样才能最好地在彩色图中绘制它,以便每个 None 值都简单地呈现为例如白色,只有分配给色标的实际数值?喜欢,

fig = plt.figure()

xs, ys = meshgrid(linspace(-5, 5, n), linspace(-5, 5, n))
vs = 1/sqrt(xs**2 + ys**2)

ax = fig.add_subplot(1, 1, 1, aspect='equal')
fig.colorbar(ax.pcolor(xs,ys,vs, vmin=0, vmax=1))

The function plot without the excluded domain.

但中心区域为空白而不是深红色。

Center erased

最佳答案

只需使用掩码数组:

from numpy import ma
vs_ma = ma.masked_where(vs > 1, vs)
plt.colorbar(plt.pcolor(xs, ys, vs_ma, vmin=0, vmax=1))

enter image description here

matplotlib 有一个更复杂的例子 image_masked.py您可以在其中选择屏蔽区域的颜色。要在普通数组和屏蔽数组之间进行转换,您可以使用 numpy.ma.masked_* 之一功能

关于python - 如何制作带有未定义区域的彩色图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39021353/

相关文章:

python - 如何绘制文本 K 均值聚类的结果?

python - 如何在 Python 中重载一元负(减)运算符?

python - 如何在不重复代码的情况下定义 randint 的元组?

python - 当 matplotlib 工作正常时出现错误 : 'no module named ' matplotlib. style'

python - 用 matplotlib.pyplot 绘制 vlines

Python 图像教程有效,其他图像表现不同(使用 Pylab 显示图像)

python - 为什么重写 __getattribute__ 来代理值会搞砸 isinstance?

python - 使用未转义的双引号进行 JSON 解码

python - `np.histogram` 和 `plt.hist` 有什么区别?为什么这些命令不绘制相同的图形?

python - 如何为从 pandas DataFrame 创建的条形图设置 x 轴刻度位置?