移动表格位置matplotlib python [英] Move table position matplotlib python

查看:443
本文介绍了移动表格位置matplotlib python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个figure,它使用matplotlib显示形状和table.问题是它是如何产生的.它们彼此重叠.形状是可缩放的,所以我不想更改它.我想知道如何更改绘图的整体大小或移动表格的位置.

I have created a figure that displays a shape and table using matplotlib. The problem is how its produced. They overlap each other. The shape is to scale so I don't want to alter it. I was wondering how I can alter the overall size of the plot or move the position of the table.

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()

推荐答案

将表格放置在轴外

您可以使用loc="right"将工作台定位在轴的右侧. fig.subplots_adjust(right=0.8)之类的东西会留出足够的空间.

Position the table outside the axes

You may use loc="right" to position the table right of the axes. Something like fig.subplots_adjust(right=0.8) will leave enough space for it.

import matplotlib.pyplot as plt
import matplotlib as mpl
plt.style.use('ggplot')

fig, ax = plt.subplots(figsize = (10,6))
fig.subplots_adjust(right=0.8)
ax.axis('equal')

ax.grid(False)

xy = 0,0
circle = mpl.patches.Circle(xy, 160, lw = 3, edgecolor = 'black', 
                            facecolor = '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,
          loc='right', zorder=3)

ax.autoscale()
plt.show()

您可以将表格放置在现有轴旁边的新轴中.优点是不需要再使用列宽或子图参数.

You may put the table in a new axes next to the existing one. The advantage is that there is no need to then play with the column width or subplot parameters.

import matplotlib.pyplot as plt
import matplotlib as mpl
plt.style.use('ggplot')

fig, (ax, ax_table) = plt.subplots(ncols=2, figsize = (10,6),
                                  gridspec_kw=dict(width_ratios=[3,1]))
ax.axis('equal')
ax_table.axis("off")

ax.grid(False)

xy = 0,0
circle = mpl.patches.Circle(xy, 160, lw = 3, edgecolor = 'black', 
                            facecolor = '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 = ax_table.table(cellText=table_vals,
          rowLabels=row_labels,
          colLabels=col_labels,
          loc='center')

ax.autoscale()
plt.show()

这篇关于移动表格位置matplotlib python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆