2014-09-17 5 views
3

Я пытаюсь центрировать текст внутри ячейки таблицы matplotlib, в то время как значение по умолчанию похоже на выравнивание по правому краю. Я просмотрел документацию объекта Table, но в этом я не мог найти ничего полезного.Центрированный текст в таблицах matplotlib

Есть ли простой способ достичь центрирования?

ответ

9

Попробуйте отредактировать образец here

Добавление

cellLoc='center' 

Для

the_table = plt.table(cellText=cell_text, rowLabels=rows, rowColours=colors, colLabels=columns, loc='bottom')

Чтобы получить enter image description here

+0

Вот и все. Я не знаю, как я этого не нашел раньше, но спасибо :) – markusian

0

Согласно документации, есть этот metthod в объекте клеток:

set_text_props(self, **kwargs) 

kwargs может относится к тексту методы/атрибуты, такие, это один:

horizontalalignment or ha = [ 'center' | 'right' | 'left' ] 

Итак, как насчет:

cell.set_text_props(ha='center') 
+0

Я уже пробовал это, но он не работает – markusian

+0

К сожалению, нет больше идей. –

0

Другой ответ, который редактирует выравнивание ячейки в отдельности, служит этот случай и более общим, где только произвольные столбцы (но не все) должны быть центрированы (или какие-либо конкретные ячейки в этом случае).

Предположим, у вас есть таблица из 5 строк - 3 столбца. Если вы хотите изменить только первый столбец:

the_table = plt.table(cellText=cell_text, 
         rowLabels=rows, 
         rowColours=colors, 
         colLabels=columns, 
         loc='bottom') 

cells = the_table.properties()["celld"] 
for i in range(0, 5): 
    cells[i, 0]._loc = 'center' 

я застрял с этим, пока я не посмотрел на table.pysource

Смежные вопросы