【发布时间】:2019-10-08 05:59:28
【问题描述】:
我正在尝试同时使用 ax.set_title() 和 plt.suptitle() 将标题和副标题合并到图表中,但两者似乎没有共享相同的对齐方式。例如:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
cats = ('One', 'Two')
vals = (12, 4)
ax.barh(cats, vals, align='center')
plt.suptitle('Title')
ax.set_title('Title')
plt.show()
给我们以下错位的标题:
如何让这两个标题正确对齐?我认为这可能与 ax.title 对齐轴和 plt.suptitle 对齐图形有关,但测试更长的 y 标签似乎不会影响偏移:
fig, ax = plt.subplots()
cats = ('One million tiny engines running at one hundred miles per hour', 'Two')
vals = (12, 4)
ax.barh(cats, vals, align='center')
plt.suptitle('Title')
ax.set_title('Title')
plt.show()
【问题讨论】:
-
这可能是一个错误,使用两种不同的方法计算位置,始终产生轻微的偏移?否则,有这个选项:stackoverflow.com/questions/1388450/…。虽然不是很干净。
-
Suptitle 通常被想象为位于许多子图之上的标题,而不是单个子图,因此如下所述,它以图形为中心,而不是轴。如果你想要一个两行标题,你可以做
ax.set_title('First Line\nSecond Line')
标签: python matplotlib