【发布时间】:2021-01-10 03:33:04
【问题描述】:
我在 python 中使用matplotlib.pyplot.pcolormesh 显示一些数据,我想在缺少数据点的地方留下空格。
假设我收集了 x 值 0 到 10 和 y 值 0 到 10 的数据,但不是每个这样的值。目前,我使用np.zeros((11,11)) 初始化我的数据存储数组,然后如果我有该点的数据,则使用for 循环将该数组的值更改为数据值。
这给我留下了一堆数据加上数组中的一些零。当我绘制此图时,无法区分没有数据的点和具有小值数据的点。
是否可以使缺失数据点与非缺失数据点明显不同?例如,在下面的代码中,我希望 (3,1)、(5,7) 和 (8,8) 处的方块着色,但其余方块为白色。
我也尝试使用np.empty((11,11)) 和np.full((11,11),np.nan) 初始化我的数据存储阵列,但它们都产生与np.zeros 相同的输出。下面是代码:
import numpy as np
import matplotlib.pyplot as plt
data_storage = np.zeros((11,11))
collected_data = [[3, 1, 45.2], [5, 7, 23.9], [8, 8, 78.4]
for data in collected_data:
x_coord = data[0]
y_coord = data[1]
value = data[2]
data_storage[y_coord,x_coord] = value
all_x_values = np.linspace(0,10,11)
all_y_values = np.linspace(0,10,11)
plt.pcolormesh(all_x_values, all_y_values, data_storage)
plt.show()
【问题讨论】:
标签: python matplotlib plot colormap