使用matplotlib 3d图时,如何避免标签和刻度的重叠?
下面的代码生成了一个matplotlib-数字。此图显示了在标签中使用LaTeX时标签打印和3D绘图的问题。 (也许拥有足够权利的人可以发布相应的数字)
如果标签中没有使用LaTeX,有一个解决方案: Adjust label positioning in Axes3D of matplotlib
如果使用LaTeX渲染标签,则忽略开头的\ n(或产生错误)! 我已经从\ phantom和\ vspace *尝试了很多,从\ mbox到minipage,但它不起作用!对于mplot3d + x,y,zlabel + LaTeX
有什么解决方案吗?在mplot3d API中提到了文档(http://matplotlib.org/mpl_toolkits/mplot3d/api.html),参数labelpad不是jet实现的'目前,labelpad对标签没有影响。'。
示例:
import matplotlib.pyplot as pyplot
import mpl_toolkits.mplot3d
from matplotlib.pyplot import rc
rc('text', usetex = True)
rc('font', size=9, family='serif', serif='Times')
fig = pyplot.figure(figsize=(8/2.5, 5/2.5))
ax = fig.gca(projection='3d')
plot = ax.plot([.1,.2,.3],[.1,.2,.3])
xLabel = ax.set_xlabel('XxxXxxX')
yLabel = ax.set_ylabel('YyyYyyY')
zLabel = ax.set_zlabel('ZzzZzzZ') # \n in here produces an error or is ignored see below
pyplot.show()
...
我尝试过的事情:
ax.set_ylabel(r“\ phantom {x}”“\ n”r'ABC',linespacing = -0.5)
答案 0 :(得分:1)
我在那里向下滚动找到了一个解决方案:Adjust label positioning in Axes3D of matplotlib
只需添加:
ax.xaxis._axinfo['label']['space_factor'] = 2.0
ax.yaxis._axinfo['label']['space_factor'] = 2.0
ax.zaxis._axinfo['label']['space_factor'] = 2.0
这是唯一对我有用的解决方案。