2017-10-13 76 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

棒极了!正是我在找什么。非同步不是一个问题,因为我的请求是注定要用于最终的视图,所以我会按照建议完成。 非常感谢 –