移动表格位置 matplotlib python

2 python plot matplotlib figure

我创建了一个figure显示形状并table使用matplotlib. 问题是它是如何产生的。它们相互重叠。形状是按比例绘制的,所以我不想改变它。我想知道如何改变绘图的整体大小或移动表格的位置。

import matplotlib.pyplot as plt
import matplotlib as mpl

fig, ax = plt.subplots(figsize = (10,6))
ax.axis('equal')
plt.style.use('ggplot')
ax.grid(False)

xy = 0,0
circle = mpl.patches.Circle(xy, 160, lw = 3, edgecolor = 'black', color = 'b', alpha = 0.1, zorder = 5)
ax.add_patch(circle)   

col_labels=['A','B','C','D','E']
row_labels=['diff','total']

table_vals=[['','','','',''],['','','','','']]

the_table = plt.table(cellText=table_vals,
    colWidths = [0.05]*5,
    rowLabels=row_labels,
    colLabels=col_labels,
    bbox = [0.8, 0.4, 0.2, 0.2])

ax.autoscale()
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Mat*_*ieu 6

bbox参数添加到您的表中。(而不是loc)

the_table = plt.table(cellText=table_vals,
              colWidths = [0.05]*5,
              rowLabels=row_labels,
              colLabels=col_labels,
              bbox = [0.2, 0.4, 0.4, 0.02])
Run Code Online (Sandbox Code Playgroud)

带BBOX

bbox参数需要 4 个输入:X、Y、宽度、高度。因此X和Y是左下角的坐标。上面,高度太小了。

编辑:创建可以玩的空间

ax这个想法是以同样的方式使较小的。

box = ax.get_position()
a.set_position([box.x0, box.y0, box.width * 0.9, box.height])
Run Code Online (Sandbox Code Playgroud)

编辑2:试图把桌子放在右边。正如我所说,你需要调整盒子的值,我尝试了大约 10 次才得到这个。我使用spyder作为IDE,所以它非常快。

import matplotlib.pyplot as plt
import matplotlib as mpl

fig, ax = plt.subplots(figsize = (10,6))
ax.axis('equal')
plt.style.use('ggplot')
ax.grid(False)

xy = 0,0
circle = mpl.patches.Circle(xy, 160, lw = 3, edgecolor = 'black', color = 'b', alpha = 0.1, zorder = 5)
ax.add_patch(circle)   

col_labels=['A','B','C','D','E']
row_labels=['diff','total']

table_vals=[['','','','',''],['','','','','']]

the_table = plt.table(cellText=table_vals,
          colWidths = [0.05]*5,
          rowLabels=row_labels,
          colLabels=col_labels,
          bbox = [1.1, 0.5, 0.35, 0.1])

box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])

ax.autoscale()
plt.show()
Run Code Online (Sandbox Code Playgroud)

输出:

右边的表