Можно ли обернуть текст xticks в matplotlib в python? - PullRequest
5 голосов
/ 12 августа 2010

Кто-нибудь знает, можно ли обернуть ярлыки xtick в matplotlib?Прямо сейчас у меня есть следующий код (отчасти грязный - взломал его некоторое время):

def plotResults(request, question_id):
 responses = ResponseOption.objects.filter(question__id=question_id).order_by('order').annotate(response_num=Count('response'))

 counts = []
 labels = [] 

 for response in responses:
  counts.append(response.response_num)
  labels.append(smart_truncate('$'+response.text+'$'))

 N = len(labels)
 labels = tuple(labels)
 counts = tuple(counts)
 ind = na.array(range(N))+0.5
 width = .35
 fig = Figure(facecolor='white',edgecolor='white')
 ax = fig.add_subplot(1,1,1)


 rects1 = ax.bar(ind, counts,linewidth=0)

 ax.set_ylabel('$Count$')

 ax.set_title('$Response Historgram$')
 ax.set_xticks(ind+width)
 ax.set_xticklabels(labels)

 print mpl.matplotlib_fname()

 canvas = FigureCanvas(fig)
 response = HttpResponse(content_type='image/png')

 canvas.print_png(response)

 return response

, который генерирует этот график:

alt text

Как вы можете видеть, у костей есть кость.Любые идеи о том, как их обернуть или обнажить, чтобы сделать их читабельными?Еще раз спасибо!

PS: Это часть проекта Django.Я возвращаю график как изображение png - обычно вызываю их из тегов img в различных представлениях.

Ответы [ 2 ]

9 голосов
/ 12 августа 2010

Возможно, попробуйте:

ax.set_xticklabels(labels, rotation=45)

Спасибо Amro за указание на то, что rotation может быть любой степени .

0 голосов
/ 29 июня 2016

Если вы хотите обернуть метки вручную, вы можете вставить '\ n' в название метки, которая разбит метку на две строки в точке, где у вас есть '\ n'. Вы можете увидеть пример этого здесь .

Похоже, теперь есть функция autowrap , которая прекрасно справляется с задачей. В этом примере используется plt.text, но это атрибут, который вы также можете указать с помощью plt.xticks. (т. е. wrap=True) Я обнаружил, что этот вид испортил выравнивание меток, поэтому мне нужно было также настроить горизонтальное и вертикальное выравнивание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...