你只需要添加一个垫.见matplotlib ticks position relative to axis
yax = ax.get_yaxis()
yax.set_tick_params(pad=pad)
要弄清楚垫应该是什么:
import numpy as np
import matplotlib.pyplot as plt
ticks = ["Lorem ipsum dolor sit amet, consectetur adipisicin", "g elit, sed do", ? ? ?"eiusmod tempor incididunt ut labo", "re et dolore magna ali", "qua. Ut en", "im ad minim veniam, quis nostr", "ud exercitation ullamco labo", "ris nisi ut aliquip ex ea c", "ommodo co", "nsequat. Duis aute irure dolor in rep"]
data = [5,1,2,4,1,4,5,2,1,5]
ind = np.arange(len(data))
fig = plt.figure(tight_layout=True) # need tight_layout to make everything fit
ax = plt.subplot(111)
ax.barh(ind, data, 0.999)
ax.set_yticks(ind + 0.5)
r = ax.set_yticklabels(ticks, ha = 'left')
fig.set_size_i