gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:27:58 33 4
gpt4 key购买 nike

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

超出颜色条边界的值的默认颜色是白色,如果颜色图没有白色作为其结束颜色,它可能会与周围的数据发生明显的冲突。示例图像如下所示 - 当值超出颜色栏的负值范围时,请注意白色填充:

enter image description here

我相信有一种方法可以指定在每个边界使用哪种颜色,如果使用 rcParams 超出它们,但我无法在任何地方找到有关此的信息。

任何帮助将不胜感激。

最佳答案

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

编辑:我知道发生了什么。您描述的白色区域没有超出颜色范围的限制。它只是轴的空白背景。因为您只绘制某些级别,所以该范围之外的任何级别都不会被绘制,将这些区域留空。要获得您想要的,请执行以下操作:

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)

“扩展”参数是关键;它告诉轮廓继续绘制所有轮廓,但将所有超出给定范围的轮廓折叠为“太大”和“太小”类别。 cs.set_clim 调用对于解决我在调试时在 contourf 中发现的一个奇怪问题是必要的;出于某种原因,当您使用 extend 时,它会操纵数据限制,因此我们需要将它们重置为我们想要的样子。

此外,就风格而言,您不应该执行 Colormap.set_under(cmap,color='k') 之类的操作。这是调用类方法并显式传递实例,这是一种奇怪的方法。只需执行 cmap.set_under(color="k")

关于Python matplotlib更改超出颜色条范围的值的默认颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11386054/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com