我的情节刻度线标签很长,很遗憾,我不能缩短它。因此,我正在寻找将标签拆分成多行(换行)的代码。我尝试了自动换行,但它在我的代码中导致了错误。
在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))
答案 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)
给予