在使用matplotlib 3d绘图时如何避免标签和记号的重叠?
下面的代码生成了一个matplotlib- figure。这个图显示了在标签中使用LaTeX时labelpadding和3D绘图的问题。(也许有足够权限的人可以发布相应的图)
如果在标签中不使用LaTeX,有一个解决方案:在matplotlib的Axes 3D中调整标签位置
如果使用LaTeX渲染标签,则忽略开头的\n(或产生错误)!我从\phantom和\vspace*,从\mbox到minipage尝试了很多,但都不起作用!有没有mplot 3d + x,y,zlabel + LaTeX的解决方案
在mplot 3d API docu(http://matplotlib.org/mpl_toolkits/mplot3d/api.html)中提到,参数labelpad未被执行“当前,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)
2条答案
按热度按时间wf82jlnq1#
我通过向下滚动找到了一个解决方案:在matplotlib的Axes3D中调整标签定位
只需添加:
这是唯一对我有效的解决方案。
ev7lccsx2#
使用“\n”调整标签本身。
尝试