在contourf图上绘制点

时间:2014-03-03 12:07:46

标签: python matplotlib

按照之前的问题(here),我现在只想将一个点绘制到每个重要的网格值。在我这样做的那一刻

ax.contourf(x, y, z)
for i in x:
    for j in y:
        if significant[i, j]==True: ax.plot(i, j, 'bo')

这显然非常糟糕,因为它很慢。这个问题有一些简单(快速)的解决方案吗?请注意,x和y的长度不同,我需要x具有可变长度。

1 个答案:

答案 0 :(得分:1)

只有在有效的情况下才能进行循环:

for i, j in zip(*np.where(significant)):
     ax.plot(i, j, 'bo')

或者,如果x和y不是像范围一样:

for i, j in zip(*np.where(significant)):
     ax.plot(x[i], y[j], 'bo')

np.where将返回一个包含两个元素的元组,即非零元素的第一个和第二个索引。