Matlibplot table 拉伸和移动
Matlibplot table stretching and moving
我正在尝试调整这个 table 以使其占据整个 window,但是顶部、底部左侧和右侧滑块的组合不允许我这样做,所有它们要做的是在翻译的同时缩小网格。
有没有办法垂直拉伸它?
这是我的代码:
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()
使用缩放工具,select 宽度大于高度的区域(例如,从左上角到右下角)更改纵横比。您也可以调整 figsize
以获得更好的纵横比。
您正在创建 table 轴下方。您似乎更愿意在 轴 内创建它,
table = ax.table(..., loc="center")
然后要调整垂直跨度,您可以设置比例,例如在 y 方向将尺寸加倍:
table.scale(1,2)
结果看起来像
或者,指定 table 相对于轴的边界框。要填充完整的轴,
table = ax.table(..., bbox=[0,0,1,1])
然后调用 fig.tight_layout()
照常调整边距。
我正在尝试调整这个 table 以使其占据整个 window,但是顶部、底部左侧和右侧滑块的组合不允许我这样做,所有它们要做的是在翻译的同时缩小网格。
有没有办法垂直拉伸它?
这是我的代码:
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()
使用缩放工具,select 宽度大于高度的区域(例如,从左上角到右下角)更改纵横比。您也可以调整 figsize
以获得更好的纵横比。
您正在创建 table 轴下方。您似乎更愿意在 轴 内创建它,
table = ax.table(..., loc="center")
然后要调整垂直跨度,您可以设置比例,例如在 y 方向将尺寸加倍:
table.scale(1,2)
结果看起来像
或者,指定 table 相对于轴的边界框。要填充完整的轴,
table = ax.table(..., bbox=[0,0,1,1])
然后调用 fig.tight_layout()
照常调整边距。