我目前想要將3D-rawdata從我的Walabot設備中可視化,並將其顯示在使用matplotlib FuncAnimation創建的3D動畫中。我已經搜索了答案,但找不到有用的東西。 在我的情況下,我已經有了一個3維數組,每個索引都有一個特定的值,隨時間變化。我已經可以弄清楚如何在不同顏色和尺寸的3D圖表中顯示它,但現在我想更新自己。我發現一些示例代碼給了我一個很好的開始,但是我的圖表並沒有自行更新。我必須關閉窗口,然後窗口再次彈出3D數組中的不同值。你們知道如何解決這個問題嗎? 這裏是我到目前爲止的代碼:Matplotlib python 3D數組值的動畫
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()
正如你看到的,行與
ani = anim.FuncAnimation(fig, update(ax, signal, plt), frames=10 , blit=True, repeat = True)
需要從頂部的更新功能。此功能清除我的情節,並用不同的值重新創建一個新情節。但我總是需要先關閉劇情窗口,這是我想避免的。 這是怎麼樣的情節: 3D array plot with matplotlib scatter 你們有一個想法如何解決這個問題?
歡呼
批評失蹤的mcve似乎有點矛盾,仍然提供了一個答案,而答案本身沒有任何解釋。我想提醒提問者缺少問題的清晰度應該是一個評論;另一方面,如果你能回答這個問題,爲什麼還要擔心這個問題?或者相反:如果問題不清楚,爲什麼要提供答案?無論如何,拋出一段代碼,然後說「如果你想了解它,閱讀文檔」同樣很糟糕。 – ImportanceOfBeingErnest
@ImportanceOfBeingErnest我讓他先閱讀文檔_first_,然後詢問其餘的問題。我會爭辯說,我實際上所說的和你如何描繪它有區別。 – Paul