Можно ли настроить видимые края ячейки таблицы matplotlib, а также установить цвет фона? - PullRequest
0 голосов
/ 29 сентября 2018

Я хотел бы наложить таблицу matplotlib на график, на котором есть сетка, то есть таблица должна скрыть что-либо позади нее на сетке.

Я также хотел бы, чтобы граница выглядела так, как будто каждая строка имеетграница, а не граница вокруг каждой ячейки.Однако настройка cell.visible_edges, кажется, нарушает заливку.

Пример для иллюстрации

import matplotlib.pyplot as plt
import numpy as np

# a plot with a grid
x = np.linspace(0, 10, 11)
y = x ** 2
plt.plot(x, y)
plt.grid()

# a table on the same axis with a visible background colour
col_labels = ['col1', 'col2', 'col3']
row_labels = ['row1', 'row2', 'row3']
table_vals = [[11, 12, 13], [21, 22, 23], [31, 32, 33, ]]
colours = [['c'] * 3] * 3

the_table = plt.table(cellText=table_vals,
                      colWidths=[0.1] * len(col_labels),
                      cellColours=colours,
                      rowLabels=row_labels,
                      bbox=(0.8, 0.8, 0.2, 0.2))

# bump the zorder up so it occludes the underlying chart
the_table.set_zorder(1000)

# change the visible_edges to produce a row border effect
for row_idx, row in enumerate(table_vals):
    for col_idx, col in enumerate(row):
        edges = 'B'
        if col_idx == 0:
            edges += 'L'
        elif col_idx == 2:
            edges += 'R'
        the_table[row_idx, col_idx].visible_edges = edges

plt.show()

В результате ячейки заполняются непоследовательно и сетка все еще видна

bad fill

Если я удаляю изменение в visible_edges, тогда оно заполняется, как ожидается

good fill

Есть лиспособ объединить эти два эффекта?

(примеры, созданные с использованием matplotlib 2.2.3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...