Как подготовить таблицу matplotlib с помощью пользовательской функции печати? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь создать функцию, которая принимает оси подзаговора в качестве параметра и возвращает таблицу matplotlib.

Я смог сделать это для графиков и линейных графиков, используя код здесь .Но попытка сделать то же самое для таблицы дает мне "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 Ответ

1 голос
/ 12 апреля 2019

Не знаю, понял ли я ваш вопрос, но вы могли бы написать свою функцию как:

def plot_reg(df_x, ax=None):
    ax = ax or plt.gca()  # either use the value passed as argument, or the current Axes
    g = ax.table(cellText=df_x.values,
                  rowLabels=df_x.index,
                  colLabels=df_x.columns,loc='center')
    return g
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...