10

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

4

2 回答 2

15

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

my_data[my_data == 0.0] = numpy.nan

或者,您可以使用 NaN 想法并遵循此链接的建议并使用 NumPy 掩码数组将 NaN 条目绘制为您喜欢的颜色。

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

于 2012-04-11T22:08:41.640 回答
3

对于不应该显示的点,使用 Python None 填充数组。

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

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

于 2012-12-19T15:25:26.640 回答