我有数据,其中每个点都是4维数组的元素。更确切地说,它是每个元素中的粗网格,我有一个较小的网格。假设粗糙的糊状物是2x2,并且在每个网格元素中我有另一个较小的网格,即3x3。问题是如何用python绘制它。我所做的是找到每个精细网格元素的全局位置,并用散点图绘制它。这有效,但我在考虑是否可以更有效地完成,而无需计算全局索引。
为了说明我的观点,请考虑以下最小例子
import matplotlib.pyplot as plt
import numpy as np
def from4to2d(i1,j1,i2,j2,nx,ny):
return (i1*nx + i2, j1*ny + j2)
nx=ny=3 # 3x3 fine mesh
x=[]
y=[]
z=[]
for i1 in range(0,2):
for j1 in range(0,2):
for i2 in range(0,3):
for j2 in range(0,3):
a,b = from4to2d(i1,j1,i2,j2,nx,ny)
x+=[a]
y+=[b]
z+=[a*b]
plt.scatter(x, y, c=z ,s=200, marker='s',cmap=mpl.cm.spectral,linewidths=0)
plt.savefig('fig.png',dpi=200,bbox_inches='tight')
问题是,如果我可以做同样的事情而不必通过from4to2d(i1,j1,i2,j2,nx,ny)
找到全球排名。