현재 Walabot 장치에서 3D-rawdata를 시각화하여 matplotlib FuncAnimation으로 만든 3D 애니메이션으로 표시하려고합니다. 이미 답변을 검색했지만 도움이되는 정보를 찾을 수 없습니다. 필자의 경우 이미 3 차원 배열을 가지고 있는데, 각 인덱스는 시간에 따라 변하는 특정 값을 가지고 있습니다. 이미 다른 색상과 크기로 3D 차트에 표시하는 방법을 알 수 있었지만 이제는 업데이트 자체를 만들고 싶습니다. 나에게 좋은 시작을 제공하는 몇 가지 예제 코드를 발견했지만 내 차트는 독자적으로 업데이트되지 않습니다. 창을 닫아야하고 3D 배열과 다른 값으로 창이 다시 나타납니다. 이 문제를 해결하는 방법을 알고 계십니까? 여기에 지금까지 내 코드입니다 : 당신이Python의 3D 배열 값 Matplotlib 애니메이션
ani = anim.FuncAnimation(fig, update(ax, signal, plt), frames=10 , blit=True, repeat = True)
상단에서 업데이트 기능을 필요로 행을 볼 수 있듯이
def update(plot, signal, figure):
plot.clear()
scatterplot = plot.scatter(x, y, z, zdir='z', s=signal[0], c=signal[0])
figure.show()
return figure
def calc_RasterImage(signal):
# 3D index is represnted is the following schema {i,j,k}
# sizeX - signal[1] represents the i dimension length
# sizeY - signal[2] represents the j dimension length
# sizeZ - signal[3] represents the k dimension length
# signal[0][i][j][k] - represents the walabot 3D scanned image (internal data)
#Initialize 3Dplot with matplotlib
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_xlim([xMin-1,xMax-1])
ax.set_ylim([yMin-1,yMax-1])
ax.set_zlim([zMin-1,zMax-1])
ax.set_xlabel('X AXIS')
ax.set_ylabel('Y AXIS')
ax.set_zlabel('Z AXIS')
scatterplot = ax.scatter(x, y, z, zdir='z', s=signal[0], c= signal[0])
cbar = plt.colorbar(scatterplot)
cbar.set_label('Density')
#def update(signal):
# ax.clear()
# scatterplot = ax.scatter(x, y, z, zdir='z', s=signal[0], c=signal[0])
ani = anim.FuncAnimation(fig, update(ax, signal, plt), frames=10 , blit=True, repeat = True)
def main():
wlbt = Walabot()
wlbt.connect()
if not wlbt.isConnected:
print("Not Connected")
else:
print("Connected")
wlbt.start()
calc_index(wlbt.get_RawImage_values())
while True:
#print_RawImage_values(wlbt.get_RawImage_values())
calc_RasterImage(wlbt.get_RawImage_values())
wlbt.stop()
if __name__ == '__main__':
main()
은. 이 함수는 내 플롯을 지우고 다른 값을 가진 새로운 플롯을 다시 만듭니다. 하지만 항상 먼저 줄거리 창을 닫아야합니다. 나는 그것을 피하고 싶습니다. 다음은 플롯의 모양입니다. 3D array plot with matplotlib scatter 이 문제를 해결하는 방법에 대해 알고 계십니까?
환호
누락 된 mcve를 비판하고 여전히 답을 제공하는 것은 다소 모순 된 것처럼 보이지만 그 자체로는 설명이 없습니다. 나는 질문의 분명한 분명한 점을 질문자에게 상기시켜야한다고 생각한다. 다른 한편으로는 질문에 대답 할 수 있다면, 왜 MCU가 누락 된 것에 대해 귀찮게합니까? 또는 그 반대의 경우 : 질문이 명확하지 않은 경우 왜 대답을 제공합니까?어쨌든 코드 조각을 던지고 "이해하고 싶다면 문서를 읽으십시오"라고 똑같이 나쁘다. – ImportanceOfBeingErnest
@ImportanceOfBeingErnest 나는 그에게 _first_ 문서를 읽고 나머지 질문을 요청했다. 나는 실제로 말했던 것과 당신이 그것을 어떻게 묘사하고 있는지간에 차이가 있다고 주장 할 것이다. – Paul