分割刻度标签或包装刻度标签

时间:2019-08-13 07:56:36

标签: python matplotlib

我的情节刻度线标签很长,很遗憾,我不能缩短它。因此,我正在寻找将标签拆分成多行(换行)的代码。我尝试了自动换行,但它在我的代码中导致了错误。 在rotation=0处加上刻度标签会使刻度标签彼此重叠,从而变得不可读。

我也尝试过使用rotation=90,但是刻度标签却溢出到我的图表空间中。

plt.title(param)
plt.ylabel('Measurement')
plt.xticks(x_axis, labels, rotation = 10, fontsize=8, horizontalalignment="center")
plt.tick_params(axis='x', pad=6) 
lgd = ax.legend(loc = 'upper left', bbox_to_anchor=(1,1))

1 个答案:

答案 0 :(得分:0)

textwrap是必经之路。函数textwrap.fill()更精确。您尚未发布收到的错误消息,但我确实假设您将整个数组labels传递给fill(),这将导致错误消息。而是使用列表理解将每个标签传递给fill(),它将起作用。

x_axis=range(5)
labels = ['abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'] * len(x_axis)

plt.title('param')
plt.ylabel('Measurement')
# Note list comprehension in the next line
plt.xticks(x_axis, [textwrap.fill(label, 10) for label in labels], 
           rotation = 10, fontsize=8, horizontalalignment="center")
plt.tight_layout()           # makes space on the figure canvas for the labels
plt.tick_params(axis='x', pad=6) 

给予

enter image description here