使用python绘制嵌入式网格

时间:2016-03-11 21:41:25

标签: python matplotlib

我有数据,其中每个点都是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)找到全球排名。

0 个答案:

没有答案