在用颜色填充网格时,例如在pyplot中使用courtoff时,我需要找到一种方法来更改pyplot用于填充超出指定颜色条范围的数据的颜色。我希望有一个静态的颜色条,它不会自动改变它的范围以适应数据的最大/最小值,所以偶尔超过其界限的极端值是不可避免的,并且需要为这些值指定颜色。
超出colorbar边界的值的默认颜色是白色,如果colormap的结束颜色不是白色,则可能会与周围的数据发生明显冲突。示例图像如下所示-请注意,当值超过色条的负范围时,会出现白色填充:
我相信有一种方法可以指定如果使用rcParams超过了每一个界限,应该使用哪种颜色,但是我在任何地方都找不到关于这一点的信息。
任何帮助都将不胜感激。
可以使用colormap的
set_over
和set_under
方法设置越界颜色;请参见the documentation。创建colormap时需要指定这些值。不过,我没有看到任何matplotlibrc设置来设置默认值。您可能还想询问matplotlib邮件列表。编辑:我知道发生了什么。您描述的白色区域不超出颜色范围的限制。它只是轴的空白背景。因为您只打印某些级别,所以该范围之外的任何级别都不会打印,而将这些区域留空。要得到你想要的,请执行以下操作:
“extend”参数是关键;它告诉courtf继续绘制所有等高线,但将给定范围之外的所有等高线折叠为“太大”和“太小”类别。在调试过程中,
cs.set_clim
调用对于解决我在courtoff中发现的一个奇怪问题是必要的;由于某些原因,当您使用extend
时,它会操纵数据限制,因此我们需要将它们重置回我们希望的状态。另外,作为一种风格,你不应该做像
Colormap.set_under(cmap,color='k')
这样的事情。这是调用类方法并显式地传入实例,这是一种奇怪的方法。只要做cmap.set_under(color="k")
。相关问题 更多 >
编程相关推荐