使用Matplotlib imshow将没有数据的点设置为白色

时间:2012-04-11 21:59:21

标签: python graph matplotlib

我使用matplotlib imshow绘制来自numpy数组的数据。但是,有些点没有数据。我使用np.zeroes初始化了数组,所以这些点正在拖拽整个地图。我知道没有数据的值为0.0。有没有办法让我告诉imshow例程忽略这些点(即让它们变白,这样很明显它们是空的)?

2 个答案:

答案 0 :(得分:10)

您是否尝试使用NaN而不是零来实例化数组,以查看matplotlib的默认值是否会以适合您的方式忽略NaN?您还可以尝试使用逻辑索引在绘图之前使0的位置等于NaN:

my_data[my_data == 0.0] = numpy.nan

或者,您可以使用NaN构思和follow this link's advice并使用NumPy蒙版数组,以便将NaN条目绘制为您喜欢的颜色。

我认为您也可以使用该链接的想法在零位置制作一个蒙版数组,如果您不喜欢它,则无需使用NaN选项。

答案 1 :(得分:3)

使用Python无法为不应显示的点填充数组。

y_series_1 = [1,None,None,4,5]
y_series_2 = [1,2,5,6,7]

对于此示例,y_series_1行将在第二和第三点从X轴消失。结果是换行(换行开始,消失,然后在第四点继续),我相信这是你所追求的行为。