Qualcuno sa se è possibile avvolgere le etichette xtick in matplotlib? In questo momento ho il seguente codice di (sorta di disordinato - stato hacking a lui per un po '):È possibile avvolgere il testo di xticks in matplotlib in python?
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
che genera questa trama:
Come si può vedere la I xtick sono disossati. Qualche idea su come avvolgerli o renderli leggibili? Grazie ancora!
PS: questo fa parte di un progetto Django. Ritorna la trama come immagine png - normalmente li chiamano dai tag img in varie viste.
'rotation = 'vertical'' potrebbe essere la risposta: http://stackoverflow.com/questions/1221108/barchart-with-vertical-labels-in-python-matplotlib – unutbu
@ ~ unutbu:' rotation' può essere qualsiasi angolo, vedi: http://matplotlib.sourceforge.net/api/axes_api.html#matplotlib.axes.Axes.set_xlabel – Amro
@Amro, grazie. 'xticks (rotation = 45)' potrebbe apparire migliore ... – unutbu