首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python matplotlib更改超出颜色条范围的值的默认颜色

Python matplotlib更改超出颜色条范围的值的默认颜色
EN

Stack Overflow用户
提问于 2012-07-09 03:37:04
回答 1查看 35.6K关注 0票数 26

当用颜色填充网格时,比如在pyplot中使用contourf时,我需要找到一种方法来更改pyplot用来填充超出颜色栏指定范围的数据的颜色。我希望有一个不会自动更改其范围以适应数据的最大/最小值的静态颜色条,因此偶尔出现超出其界限的极值是不可避免的,并且需要为这些值指定颜色。

超出颜色栏边界的值的默认颜色是白色,如果色彩映射表没有将白色作为其最终颜色,则会与周围的数据发生明显的冲突。示例图像如下所示-请注意当值超出colorbar的负值范围时出现的白色填充:

我相信有一种方法可以指定在使用rcParams时在每个边界上使用哪种颜色,但我在任何地方都找不到关于这方面的信息。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-09 03:59:37

可以使用色彩映射表的set_overset_under方法设置越界颜色;请参阅the documentation。在创建色彩映射表时,需要指定这些值。不过,我没有看到任何matplotlibrc设置来为此设置默认值。您可能还想在matplotlib邮件列表上询问。

编辑:我知道是怎么回事了。您所描述的白色区域没有超出颜色范围的限制。它仅仅是轴的空白背景。由于仅打印某些标高,因此不会打印该范围之外的任何标高,从而将这些区域留空。要获得您想要的,请执行以下操作:

代码语言:javascript
运行
复制
cs = pyplot.contourf(x,y,z,levels=np.arange(50, 220, 20), cmap=pyplot.cm.jet, extend="both")
cs.cmap.set_under('k')
cs.set_clim(50, 210)
cb = pyplot.colorbar(cs)

"extend“参数是关键;它告诉contourf继续绘制所有等高线,但将给定范围之外的所有等高线归入”太大“和”太小“类别。为了解决我在调试时在contourf中发现的一个奇怪问题,cs.set_clim调用是必要的;由于某些原因,当您使用extend时,它会操纵数据限制,因此我们需要将它们重新设置为我们想要的值。

另外,作为一个风格问题,你不应该做像Colormap.set_under(cmap,color='k')这样的事情。这就是调用类方法并显式地传递实例,这是一种奇怪的方式。做cmap.set_under(color="k")就行了。

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

https://stackoverflow.com/questions/11386054

复制
相关文章

相似问题

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