2012-08-28 5 views
0

np.fromfile을 사용하여 이진 파일의 데이터를 numpy 개의 배열로 읽습니다. 이 데이터는 간격과 모양이 알려진 그리드에서 Z 값을 나타내므로 1D 배열을 그리드의 모양으로 재구성하고 plt.imshow으로 플로팅하는 데 문제가 없습니다. 그래서 내가 N 그리드를 가지고 있다면 플롯 할 수 있습니다 N 서브 플로트는 모든 데이터를 하나의 그림으로 보여 주지만 실제로하고 싶은 것은 하나의 이미지로 그려져 있습니다.다양한 그리드 간격의 그리드 스티칭

각 배열의 데이터 간격이 다르고 모양이 다르기 때문에 배열을 쌓을 수 없습니다.

제 아이디어는 모든 격자를 가장 좋은 격자, 스택 및 플롯의 간격에 "슈퍼 샘플링"하는 것이 었습니다. 그러나 이러한 격자 파일이 상당히 커질 수 있다는 것을 알지 못합니다. 그런데

: 내가 어떤 제안에 열려있어

0, 0, 1, 1, 2, 2 
    0, 0, 1, 1, 2, 2 
    3, 3, 4, 4, 5, 5 
    3, 3, 4, 4, 5, 5 

:

0, 1, 2 
    3, 4, 5 

에 : 나는에서 가서 어떻게,의 내가 그렇게하고 싶어한다고 가정 해 봅시다.

감사합니다,

샤 하르

+0

당신은'loop'와 같은 smth를 써서 각 요소를 행렬에 덧붙일 수 있습니다. –

답변

0

방금 ​​플롯 인 경우 대답은 :하지 않습니다. plt.imshow에는 그림을 그릴 때 상상을 확대하는 데 사용할 수있는 키워드 인수 extent이 있습니다. 그렇다면 scipy.ndimage.zoom과 order = 0을 사용하는 것이 좋습니다. 다른 값을 반복하는 것과 같습니다. 그러나 어떤 크기로든 쉽게 확대하거나 다른 순서를 사용하여 부드럽게 보간 할 수 있습니다. np.tile도 매우 간단한 확대/축소 옵션이 될 수 있습니다.

a = np.arange(9).reshape(3,3) 
b = np.arange(36).reshape(6,6) 

plt.imshow(a, extent=[0,1,0,1], interpolation='none') 
plt.imshow(b, extent=(1,2,0,1), interpolation='none') 
# note scaling is "broke" 
plt.xlim(0,2) 

는 모두 같은 색상 범위를 얻을 물론, 당신이 vim=...vmax 키워드를 추가해야합니다 : 여기

은 예입니다.

+0

저는'im.show'를 사용합니다. 'extent'는 내가 찾고있는 것이 아니며 각 그리드/배열/파일/당신이 원하는 모든 것을 필요로합니다. 확대 할 필요가 없습니다. 모든 것을 하나씩 가져와 한 이미지로 그릴 수 있습니다. – Shahar

+0

@Shahar 그래서 당신은 그 (것)들에 실제 _calculations_를하고 다만 그 (것)들을 그리기 위하여 싶지 않다. scipy가 없으면'scipy.ndimage.zoom'을 사용하십시오. 이 모든 것이 매우 규칙적이며 RAM을 특별히주의해야 할 경우 다른 옵션이있을 수 있지만 중요한 단계는 작의가 아닌 것처럼 실제로 수행 할 작업에 대해 알려줍니다. – seberg

+0

몇 가지 계산을했지만 문제는 아닙니다. 위에서 설명한 것처럼'plt.imshow'를 통해 내가 한 모든 조작 결과를 볼 수 있습니다.하지만 일단 각 "패치"가 처리되면 해당 이미지를 하나의 이미지로 결합하려고합니다. 내 이미지의 일부분이 저해상도 패치의 오버 샘플링 버전이 될 것이라는 것을 알고 있지만 걱정하지 않습니다. – Shahar