我使用matplotlib创建一个包含4个子图的图形.
我想拆分一个子图的标题,这样每条线都会相对于子图位于中心位置.
我试过了
import matplotlib.pylab as plt
fig = plt.figure(num=0,figsize=(8.27, 11.69), dpi=300)
ax = fig.add_subplot(2, 2, 1)
ax.set_title(r'Normalized occupied \\ Neighbors')
Run Code Online (Sandbox Code Playgroud)
而我得到的是Neighbors
左侧缩进.
我怎么能纠正这个?
Yan*_*ann 46
当我以这种方式格式化字符串时,我得到了正确的对齐:
import matplotlib.pylab as plt
fig = plt.figure()#num=0,figsize=(8.27, 11.69), dpi=300)
ax = fig.add_subplot(2, 2, 1)
ax.set_title('Normalized occupied \n Neighbors')
plt.show()
Run Code Online (Sandbox Code Playgroud)
AlQ*_*ist 13
与r
前缀兼容的更好的解决方案(特别是当需要使用LaTeX标记时)是将标题文本分成两个(或更多部分),例如,
import matplotlib.pylab as plt
fig = plt.figure()
plt.title('My Title\n' + r'$\alpha - \omega$ are LaTeX Markup')
plt.plot([1,2,3,4])
plt.show()
Run Code Online (Sandbox Code Playgroud)
小智 12
我知道这个问题有点旧,但对于其他寻找参考的人 - 在 Matplotlib 3.1.1 中,plt.title() 和 ax.set_title() 都允许将文本属性作为 kwargs传递,因此您可以拥有
plt.title('My very long title that I want to wrap and stay center-aligned', wrap=True)
或者
fig, [ax1, ax2] = plt.subplots(2,1)
ax1.set_title('My very long title that I want to wrap and stay center-aligned', wrap=True)