下面的代码创建一个有两个子图的图。一个图包含一个图,另一个图包含一个表。
import matplotlib.pyplot as plt
import numpy as np
# Sample data for the graph
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
n = 10
table_data = np.random.uniform(0, 1, size=(10, n)).round(2)
# Plot the data
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))
ax1.plot(x, y)
ax2.axis('off')
ax2.table(cellText=table_data, colLabels=['Column {}'.format(i) for i in range(1, n + 1)],
loc='center', cellLoc='center')
table = ax2.tables[0]
table.auto_set_font_size(False)
table.set_fontsize(12)
table.scale(1, 1.5)
在这段代码中,主图和子图的大小是固定的。然而,我的数据的列数是不固定的。因此,当数据集包含更多列时,我希望图按列的宽度加宽。然而,ax1图的大小以及表的其他列的大小应该保持不变。因此,绘图画布的宽度以及ax2的宽度应该根据我拥有的列数自动设置。
我怎么才能做到这一点?
1条答案
按热度按时间lbsnaicq1#
如果你尝试使用
figsize=(n*3,4)
,那么它应该可以工作(至少对于我的jupyter笔记本,n*3工作。下面是
n=5
的结果
下面是
n=10
的结果
下面是
n=2
的结果
这是你要找的吗