2016-06-07 213 views
2

我正在嘗試創建3D數據投影的2D圖。很簡單,基於this example,是否有一種方法可以將所示的三個輪廓投影(X,Y和Z方向)作爲單獨的2D圖形生成?我可以通過使用pyplot'contour'命令輕鬆地在Z方向上創建輪廓投影,但只有'3d'投影'contour'命令似乎能夠採用'zdir'參數,並且它不能創建2D地塊。Matplotlib分離3D數據的2D輪廓投影圖

回答

3

3D輪廓中的zdir參數基本上說明哪個軸將用於確定3D繪圖中的輪廓等級。在二維圖中,這通常由參數的順序來指定,所以我們通常認爲是「Z」,即確定輪廓等級的值,作爲第三個參數。在下面的例子中,特別注意到前三個參數在每個contourf來電:

from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
from matplotlib import cm 

X, Y, Z = axes3d.get_test_data(0.05) 

plt.subplot(131) 
cset = plt.contourf(X, Y, Z, cmap=cm.coolwarm) 
plt.subplot(132) 
cset = plt.contourf(Y, Z, X, cmap=cm.coolwarm) 
plt.subplot(133) 
cset = plt.contourf(X, Z, Y, cmap=cm.coolwarm) 

plt.show() 

enter image description here

相比於3D圖的預測:

enter image description here

注在這裏我提到了「第三個參數」,但實際上有很多方法可以解釋contourf的參數,所以請參閱文檔以獲取更多細節,儘管這種方法通常會在y使用X,Y和Z明確的調用。

+0

是的,這使得總體感和不知道爲什麼我沒有意識到 - 只是交換方向。謝謝! – GafferMan2112