首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cmap.set_bad()与pcolor()不显示任何效果

cmap.set_bad()与pcolor()不显示任何效果
EN

Stack Overflow用户
提问于 2012-02-10 00:41:44
回答 1查看 11.2K关注 0票数 5

我尝试在掩码数组上使用pcolor。我希望被遮罩的元素以特殊的颜色显示。我写了一些代码,但似乎不起作用:

代码语言:javascript
运行
复制
import matplotlib as mpl
import matplotlib.pyplot as plt

from numpy import linspace
from numpy.random import randn
from numpy.ma import masked_invalid

D = randn(12*72).reshape((12,72))
D[4,:] = nan
D[6,6] = nan

D = masked_invalid(D)

cmap = mpl.cm.bwr
c    map.set_bad('k', 1.)

xbin = linspace(0, 12, 13)
ybin = linspace(-90, 90, 73)

fig = plt.figure()
spl = fig.add_subplot(111)
pl = spl.pcolor(xbin, ybin, D.T, cmap=cmap, edgecolors='none',
                vmin=-5, vmax=5)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-10 00:52:35

pcolormesh的文档中写道:

掩码数组支持是通过cmap和实现的;与之相反,中的pcolor()根本不会绘制带有掩码颜色或顶点的四边形。

因此,请改用pcolormesh:

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
import numpy as np

D = np.random.randn(12*72).reshape((12, 72))
D[4, :] = np.nan
D[6, 6] = np.nan

D = np.ma.masked_invalid(D)

cmap = plt.get_cmap('bwr')
cmap.set_bad(color = 'k', alpha = 1.)

xbin = np.linspace(0, 12, 13)
ybin = np.linspace(-90, 90, 73)

fig = plt.figure()
ax = fig.add_subplot(111)
pl = ax.pcolormesh(xbin, ybin, D.T, cmap = cmap, edgecolors = 'None',
                vmin = -5, vmax = 5)
plt.show()

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9214971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档