【问题标题】:split tick labels or wrap tick labels [duplicate]拆分刻度标签或包装刻度标签[重复]
【发布时间】:2019-08-13 07:56:36
【问题描述】:

我有很长的情节刻度标签,不幸的是我无法缩短。因此,我正在寻找将标签拆分为多行(换行文本)的代码。我尝试了文本换行,但它导致我的代码出错。 将刻度标签放在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))

【问题讨论】:

  • 我试过了。但它没有用。代码不会执行。

标签: python matplotlib


【解决方案1】:

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) 

给予

【讨论】:

  • 首先,您必须先import textwrap 才能使用此代码。
猜你喜欢
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多