2017-10-13 74 views
0

我一直在繪製來自實驗數據的3D散點圖。它代表橢球狀物體的輪廓。橢球體的大小和形狀隨樣本而變化。在側面添加3D幫助軸matplotlib

這就是爲什麼我想將散點圖保存爲我的數據沿(xOy),(xOz)和(yOz)平面(可能還有其他)的2D投影的原因。爲了清楚起見,我想知道如何在繪圖的邊上繪製我投影的軸(就像分子可視化軟件可以做的那樣)。 我做了一個例子,大致用Inkscape添加座標軸,但如果可能的話,我想要一個使用matplotlib的解決方案。

請參閱以下示例圖像。

enter image description here

回答

0

您可以添加另一個軸,以圖中,位於左下角,例如

xax = fig.add_axes([0.1, 0.1,0.2, 0.2]) 

並用箭頭繪製一些註釋。

from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 

fig = plt.figure() 
ax = fig.gca(projection='3d') 

xax = fig.add_axes([0.1, 0.1,0.2, 0.2]) 

xax.annotate('', xy=(1, 0), xytext=(0, 0), 
      arrowprops=dict(facecolor='black', shrink=0.02), clip_on=False) 
xax.annotate('x', xy=(1.1, 0), clip_on=False, va="center") 
xax.annotate('', xy=(0, 1), xytext=(0, 0), 
      arrowprops=dict(facecolor='black', shrink=0.02), clip_on=False) 
xax.annotate('y', xy=(0, 1.1), clip_on=False, ha="center") 
xax.set_xlim(-.2,1.5) 
xax.set_ylim(-.2,1.5) 
xax.set_aspect("equal") 
xax.axis("off") 

plt.show() 

enter image description here

這當然不與3D同步的軸,因此可能產生每要保存鑑於這樣軸之一。

+0

棒極了!正是我在找什麼。非同步不是一個問題,因爲我的請求是註定要用於最終的視圖,所以我會按照建議完成。 非常感謝 –