如何使用自定义绘图功能对Matplotlib表进行子绘图?

时间:2019-04-12 18:59:57

标签: python matplotlib seaborn

我正在尝试创建一个将子图的轴作为参数并返回matplotlib表的函数。

我能够使用代码here对条形图和线形图执行此操作。但是尝试对表进行相同操作会给我一个“ error table() got multiple values for argument 'ax'

import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({'var':['a','b','c','d'],'col1':[1,2,3,4],'col2':[1,4,9,16]})
df.set_index('var', inplace=True)


def plot_reg(df_x, ax=None):
    g = plt.table(cellText=df_x.values,
                  rowLabels=df_x.index,
                  colLabels=df_x.columns,loc='center', ax=ax)
    return g

fig, ax = plt.subplots(figsize=(8,5), ncols=2)
plot_reg(df, ax=ax[1])

我想得到类似下图的结果。

fig, ax = plt.subplots(figsize=(8,5), ncols=2)
ax[1].table(cellText=df.values,rowLabels=df.index,colLabels=df.columns,loc='right')
# ax[1].axis('tight')
ax[1].axis('off')

enter image description here

1 个答案:

答案 0 :(得分:1)

我不知道我是否理解您的问题,但是您可以将函数编写为:

<test_metadata xmlns="http://example/test">
    <investigators>
        <investigator>JohnHDoe</investigator>
        <investigator>JackSmith</investigator>
    </investigators>
    <dataSubmitter>JohnHDoe</dataSubmitter>
    <people>
        <person ref_id="JohnHDoe">
            <name>John H Doe</name>
            <organization>semi</organization>
            <contactInfo>tweedy</contactInfo>
        </person>
        <person ref_id="JackSmith">
            <name>Jack Smith</name>
            <organization>fully</organization>
            <contactInfo>whistler</contactInfo>
        </person>
    </people>
</test_metadata>