Как я могу настроить белое пустое пространство вокруг таблицы Matplotlib, чтобы оно соответствовало размеру таблицы?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу настроить белое пустое пространство вокруг таблицы Matplotlib, чтобы оно соответствовало размеру таблицы?

Сообщение Anonymous »

Вокруг моей таблицы Matplotlib есть лишнее пустое пространство, из-за чего моя таблица сжимается, как будто размер figsize недостаточно велик. Если я увеличу размер figsize, таблица будет отображаться нормально, но затем белое пустое пространство станет еще больше. Кроме того, заголовок смещается в таблице, когда количество строк превышает определенное число (около 35 или около того).

Код: Выделить всё

import matplotlib.pyplot as plt

def create_pivot_table(
title: str,
pivot_table: pd.core.frame.DataFrame,
):
"""
Creates a Matplotlib table from a Pandas pivot table.
Returns fig and ax.
"""

fig_width = 1 + len(pivot_table.columns) * 0.6
fig_height = 1 + len(pivot_table) * 0.3
figsize=(fig_width, fig_height)
fig, ax = plt.subplots(figsize=figsize)

title = title
ax.set_title(
title,
fontsize=16,
weight='bold',
loc='center'
)
ax.axis('off')

table = ax.table(
cellText=pivot_table.values,
colLabels=pivot_table.columns,
rowLabels=pivot_table.index,
cellLoc='center',
loc='center'
)

table.auto_set_font_size(False)

# Formatting the table with alternating colors to make it more readable
for (row, column), cell in table.get_celld().items():
if row == 0:
cell.set_text_props(weight='bold')
cell.set_fontsize(8)
cell.set_height(0.05)

if column % 2 == 0:
cell.set_facecolor('#dadada')
else:
cell.set_facecolor('#ffffff')
else:
cell.set_fontsize(10)
cell.set_height(0.03)

if row % 2 == 0:
cell.set_facecolor('#ffffff')
else:
cell.set_facecolor('#e6f7ff')

if column % 2 == 0:
cell.set_facecolor('#dadada' if row % 2 == 0 else '#b9d5d3')
else:
cell.set_facecolor('#ffffff' if row % 2 == 0 else '#e6f7ff')

return fig, ax
Фиктивные данные:

Код: Выделить всё

import pandas as pd
import numpy as np

data = np.random.randint(1, 100, size=(3, 4))
df = pd.DataFrame(data, index=['A', 'B', 'C'], columns=[1, 2, 3, 4])

title = 'Title'

fig, ax = create_pivot_table(
title=title,
pivot_table=df
)
Результат:
Изображение

Желаемый результат: та же таблица, за исключением пустого пробела, чтобы таблица отображалась правильно. Кроме того, я хотел бы центрировать заголовок и таблицу внутри рисунка, чего не происходит с написанным мной кодом (в зависимости от размера таблицы и заголовка).
Заранее спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/789 ... tch-the-ta
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему мой элемент и компонент не растут с размером экрана рабочего стола, оставляя пустое белое пространство? [закрыто]
    Anonymous » » в форуме CSS
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Пустое пространство вокруг всей страницы
    Гость » » в форуме CSS
    0 Ответы
    64 Просмотры
    Последнее сообщение Гость
  • Пустое пространство вокруг всей страницы
    Гость » » в форуме CSS
    0 Ответы
    48 Просмотры
    Последнее сообщение Гость
  • Как иметь одинаковое пустое пространство вокруг представления в Android для разных устройств
    Гость » » в форуме Android
    0 Ответы
    42 Просмотры
    Последнее сообщение Гость
  • WPF отображает белое пустое окно при использовании Show()
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»