2017-04-25 5 views
1

동일한 길이 x, y, z 세 개의 배열이 있습니다. x 및 y 배열은 격자의 x 축 및 y 축입니다. z 배열은 격자 블록의 색상을 결정합니다. 예를 들어,3 개의 배열을 가진 채색 된 2D 그리드 수행 방법

x = [10, 10, 10, 20, 20, 20, 30, 30, 30] 
y = [10, 20, 30, 10, 20, 30, 10, 20, 30] 
z = [100, 54, 32, 67, 71, 88, 100, 15, 29] 

ax.plot_trisurf(x, y, z, cmap=cm.RdYlGn) 

또는

ax.bar3d(x, y, [0] * len(x), 100, 100, z, cmap=cm.RdYlGn) 

처럼이에서 3D 플롯을 쉽게 만들 수있다 그러나 나는 this

+1

당신이 시도한 코드를 보여줄 수 있습니까? – Subgeo

+0

또한 특정 질문을하는 것이 좋습니다. –

답변

1

np.meshgrid처럼 뭔가를 찾고 있어요 2 차원 배열의 튜플을 반환합니다. 직접 포장을 풀 수 있습니다

X,Y = np.meshgrid(x,y) 

그러나 imshow 플롯의 경우에는 필요하지 않습니다. 코드에서 부족한 부분은 z 값의 2D 배열입니다. 이것은 imshow에 제공 할 배열입니다.

img = plt.imshow(Z) 

대신 meshgrid 사용하려는 경우, 당신은 당신의 XY 값을 사용할 수 있습니다,

plt.pcolormesh(X,Y,Z) 

예제 데이터를보고, 당신은 imshow 사용할 수 있습니다

x = [10, 10, 10, 20, 20, 20, 30, 30, 30] 
y = [10, 20, 30, 10, 20, 30, 10, 20, 30] 
z = [100, 54, 32, 67, 71, 88, 100, 15, 29] 

import matplotlib.pyplot as plt 
import numpy as np 

z = np.array(z).reshape(3,3) 

plt.imshow(z,extent=[5,35,5,35]) 

plt.show() 

enter image description here

+0

그래서 X, Y = np.meshgrid (x, y), plt.pcolormesh (X, Y, Z)를 사용하고 싶습니다. 충분히 간단하지만 작동하지 않습니다. – UnlimitedQuestions

+0

물론 문제의 [mcve]와 문제의 설명을 'it does not work'이상으로 알려줄 수 있습니다. 그렇지 않으면 내가 너를 도울 수 없어. – ImportanceOfBeingErnest

+0

문제 없습니다. 나는 내가 원하는 것을 보여주는 그림을 추가했다. – UnlimitedQuestions