在 matplolib 中增加标题和情节之间的距离?

我在 matplotlib 中有一个简单的绘图,我想增加标题和绘图之间的距离(不使用 suptitle,因为它不适用于我在服务器上使用的版本)。怎么做?

118419 次浏览

There doesn't seem to be a clean way to set this directly (but might be worth a feature request to add that), however the title is just a text artist, so you can reach in and change it.

#ax = plt.gca()
ttl = ax.title
ttl.set_position([.5, 1.05])
#plt.draw()

should do the trick. Tune the 1.05 to your liking.

Using rcParams:

from matplotlib import rcParams
rcParams['axes.titlepad'] = 20

where 20 is the padding between the plot and the title.

From https://matplotlib.org/users/customizing.html

With matplotlib 2.2+, you can use the keyword argument pad:

ax.set_title('Title', pad=20)

Adjust pad until you're happy with the axis title position. The advantage of this method over using rcParams is that it only changes this one axis title.

You can just pass y parameter into plt.suptitle method:

plt.suptitle('Amazing Stats', size=16, y=1.12);

Another possibility is to reduce the relative size of the plot with respect to the whole figure window. In that way the distance between title and plot increases.

Before showing the plot, i.e. before plt.show(), write following command:

#The standard value of 'top' is 0.9,
#tune a lower value, e.g., 0.8
plt.subplots_adjust(top=0.8)

This method has the advantage over @CanCeylan method that the title never goes out of the figure window; because if the title is large enough, then moving it upwards through the parameter y in suptitle might move the title outside the figure. (as it happened to me ;))