调整 Axes3D 标签位置

2024-01-16

我在 matplotlib 中的轴标签与刻度标签重叠时遇到问题。我尝试通过应用转换或调用 set_y() 来“手动”重新定位标签,但无济于事。

这是重现该问题的片段:

import matplotlib
matplotlib.use("TKAGG")
import matplotlib.pyplot as pyplot
import mpl_toolkits.mplot3d

figure = pyplot.figure()
figure.subplots_adjust(bottom=0.25, top=0.75)
axes = figure.gca(projection='3d')
xLabel = axes.set_xlabel('XXX xxxxxx xxxx x xx x')
yLabel = axes.set_ylabel('YY (y) yyyyyy')
zLabel = axes.set_zlabel('Z zzzz zzz (z)')
plot = axes.plot([1,2,3],[1,2,3])

pyplot.show()

请注意 x 和 y 标签如何与刻度线发生冲突。我可以优雅地解决这个问题吗?


我分享你的沮丧。我花了足足半个小时的时间,却一无所获。文档说 set_xlabel 需要一个 arglabelpad http://matplotlib.sourceforge.net/api/axes_api.html#matplotlib.axes.Axes.set_xlabel但我收到错误(AttributeError:未知属性标签板)!在 xaxis 或 w_xaxis 上事后设置它不会执行任何操作。

这是一个粗略的解决方法:

import matplotlib
matplotlib.use("TKAGG")
import matplotlib.pyplot as pyplot
import mpl_toolkits.mplot3d

figure = pyplot.figure(figsize=(8,4), facecolor='w')
ax = figure.gca(projection='3d')

xLabel = ax.set_xlabel('\nXXX xxxxxx xxxx x xx x', linespacing=3.2)
yLabel = ax.set_ylabel('\nYY (y) yyyyyy', linespacing=3.1)
zLabel = ax.set_zlabel('\nZ zzzz zzz (z)', linespacing=3.4)
plot = ax.plot([1,2,3],[1,2,3])
ax.dist = 10

pyplot.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调整 Axes3D 标签位置 的相关文章

随机推荐