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

Есть ли способ растянуть это по вертикали?

Вот мой код:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors
from random import randint

def colour(value):
    r,g,b = 0,0,0
    if value < 1:
        r = 1
        g = 1*value
    if value > 1:
        r = 1 - 1*(value-1)
        g = 1
    if value == 1:
        r = 1
        g = 1
    if value > 2:
        b = 1
    colour  =  (r,g,b)

    return colour

ncols, nrows = 7,8
row= [[]]*nrows
for i in range(nrows):
    row[i] = i*3

print(row)
col = ['M', 'T', 'W', 'Th', 'F', 'Sat', 'Sun']
list = []
text = ['','','','','','','']

for a in range(nrows):
     list.append(text)


fig, ax = plt.subplots()
ax.axis('tight')
ax.axis('off')
image = ax.table(cellText=list, colLabels = col, rowLabels=row)
for j in range(ncols):
    for i in range(nrows):
        print(i,j)
        value = randint(0,200)
        value = value / 100       
        image._cells[(i+1,j)].set_facecolor(colour(value))

figManager = plt.get_current_fig_manager()
figManager.window.showMaximized()
fig.tight_layout()
plt.show()

enter image description here

0
Jkind9 12 Мар 2018 в 20:45

2 ответа

Лучший ответ

Вы создаете таблицу под осями. Кажется, вы хотели бы создать его в пределах осей,

table = ax.table(..., loc="center")

Чтобы затем отрегулировать вертикальный диапазон, вы можете установить масштаб, например, чтобы удвоить размер в направлении у:

table.scale(1,2)

Тогда результат будет выглядеть как

enter image description here

В качестве альтернативы, укажите ограничивающий прямоугольник таблицы относительно осей. Чтобы заполнить все оси,

table = ax.table(..., bbox=[0,0,1,1])

Затем вызов fig.tight_layout() корректирует поля как обычно.

enter image description here

1
ImportanceOfBeingErnest 12 Мар 2018 в 19:04

Используйте инструмент масштабирования и выберите область шире, чем она высока (например, левый верхний угол и правый нижний угол), чтобы изменить соотношение сторон. Вы также можете настроить figsize, чтобы получить лучшее соотношение сторон.

0
scnerd 12 Мар 2018 в 17:51