def __call__(self, ranges=None): element = self.map.last axis = self.handles['axis'] axis.set_axis_off() size_factor = (1.0 - 2*self.border) table = mpl_Table(axis, bbox=[self.border, self.border, size_factor, size_factor]) width = size_factor / element.cols height = size_factor / element.rows summarize = element.rows > self.max_rows half_rows = self.max_rows/2 rows = min([self.max_rows, element.rows]) for row in range(rows): adjusted_row = row for col in range(element.cols): if summarize and row > half_rows: adjusted_row = (element.rows - self.max_rows + row) cell_value = self.cell_values[self.keys[-1]][(row, col)] cellfont = self.font_types.get(element.cell_type(adjusted_row,col), None) font_kwargs = dict(fontproperties=cellfont) if cellfont else {} table.add_cell(row, col, width, height, text=cell_value, loc='center', **font_kwargs) table.set_fontsize(self.max_font_size) table.auto_set_font_size(True) axis.add_table(table) self.handles['table'] = table return self._finalize_axis(self.keys[-1])
def initialize_plot(self, ranges=None): element = self.hmap.last axis = self.handles['axis'] axis.set_axis_off() size_factor = (1.0 - 2*self.border) table = mpl_Table(axis, bbox=[self.border, self.border, size_factor, size_factor]) total_width = sum(self.cell_widths.values()) height = size_factor / element.rows summarize = element.rows > self.max_rows half_rows = self.max_rows/2 rows = min([self.max_rows, element.rows]) for row in range(rows): adjusted_row = row for col in range(element.cols): if summarize and row > half_rows: adjusted_row = (element.rows - self.max_rows + row) cell_value = self._cell_value(element, row, col) cellfont = self.font_types.get(element.cell_type(adjusted_row,col), None) width = self.cell_widths[col] / float(total_width) font_kwargs = dict(fontproperties=cellfont) if cellfont else {} table.add_cell(row, col, width, height, text=cell_value, loc='center', **font_kwargs) table.set_fontsize(self.max_font_size) table.auto_set_font_size(True) axis.add_table(table) self.handles['artist'] = table return self._finalize_axis(self.keys[-1], element=element)
def _render_table(self, element, axes): if self.dynamic: cell_widths = defaultdict(int) self._update_cell_widths(element, cell_widths) else: cell_widths = self.cell_widths size_factor = (1.0 - 2*self.border) table = mpl_Table(axes, bbox=[self.border, self.border, size_factor, size_factor]) total_width = sum(cell_widths.values()) height = size_factor / element.rows summarize = element.rows > self.max_rows half_rows = self.max_rows/2 rows = min([self.max_rows, element.rows]) for row in range(rows): adjusted_row = row for col in range(element.cols): if summarize and row > half_rows: adjusted_row = (element.rows - self.max_rows + row) cell_value = self._cell_value(element, row, col) cellfont = self.font_types.get(element.cell_type(adjusted_row,col), None) width = cell_widths[col] / float(total_width) font_kwargs = dict(fontproperties=cellfont) if cellfont else {} table.add_cell(row, col, width, height, text=cell_value, loc='center', **font_kwargs) table.set_fontsize(self.max_font_size) table.auto_set_font_size(True) return table