Skip to main content

Create prettier tables in matplotlib

Project description

mpltable

mpltable is a Python library that makes it easy to create and customize tables using matplotlib. It provides a simple Table class that can be used to draw tables on a given Axes object. This library offers various customization options such as column width, cell and header styles, title, separators, and border options.

Installation

To install mpltable, run the following command:

pip install mpltable

Usage

Below is a quick example of using mpltable to create a simple table.

import pandas as pd
import matplotlib.pyplot as plt
from mpltable import Table

# Sample data
data = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# Create a table with the data
fig, ax = plt.subplots()
table = Table(data, ax)
table.draw()

plt.show()

Features

The Table class in mpltable provides several features for customizing your table:

  • show_column_names: Display or hide column names in the table (default: True).
  • col_widths: Set the column widths (default: equal width for all columns).
  • col_header_options: Customize the appearance of the column headers.
  • cell_options: Customize the appearance of the table cells.
  • table_title: Set the table title (default: None).
  • title_options: Customize the appearance and position of the table title.
  • background_color: Set the background color of the table (default: None).
  • header_separator_kwargs: Customize the separator line between header and data rows.
  • column_separator_kwargs: Customize the separator lines between columns.
  • row_separator_kwargs: Customize the separator lines between rows.
  • border_options: Customize the appearance of the table borders.

col_header_options

You can pass in a dictionary with the following settings

  • text_kwargs: A dictionary of keyword arguments to pass to the text rendering function for the column headers.
  • padding: A float between 0 and 1 indicating the amount of padding to add around the text in each column header as a fraction of the height of the column header.
  • alignment: A string indicating the horizontal alignment of the text in each column header, either "left", "center", or "right".
  • extend_column_separator: A boolean indicating whether the column separator lines should extend through the column headers.

cell_options

You can pass in a dictionary with the following settings

  • text_kwargs: A dictionary of keyword arguments to pass to the text rendering function for the cells.
  • padding: A float between 0 and 1 indicating the amount of padding to add around the text in each cell as a fraction of the height of the cell.
  • alignment: A string indicating the horizontal alignment of the text in each cell, either "left", "center", or "right".

title_options

You can pass in a dictionary with the following settings

  • text_kwargs: A dictionary of keyword arguments to pass to the text rendering function for the table title.
  • padding: A float between 0 and 1 indicating the amount of padding to add around the text in the table title as a fraction of the height of the table title.
  • alignment: A string indicating the horizontal alignment of the text in the table title, either "left", "center", or "right".
  • position: A string indicating the position of the table title, either "top" or "bottom".
  • height: A float between 0 and 1 indicating the height of the table title as a fraction of the height of the table.
  • separator_kwargs: A dictionary of keyword arguments to pass to the line rendering function for the separator line between the table title and the table.

border_options

You can pass in a dictionary with the following settings

  • bottom: a dictionary of keyword arguments to pass to the line rendering function for the bottom border of the table.
  • top: a dictionary of keyword arguments to pass to the line rendering function for the top border of the table.
  • left: a dictionary of keyword arguments to pass to the line rendering function for the left border of the table.
  • right: a dictionary of keyword arguments to pass to the line rendering function for the right border of the table.

Once the Table object has been instantiated, all these are converted into dataclasses and can be modified directly before calling the draw method. For example, to change the column widths, you can do the following:

table.col_widths = [0.2, 0.3, 0.5]
table.draw()

For more examples and detailed usage instructions, please refer to the documentation.

License

mpltable is released under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matplotlib_table-0.0.2.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

matplotlib_table-0.0.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file matplotlib_table-0.0.2.tar.gz.

File metadata

  • Download URL: matplotlib_table-0.0.2.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for matplotlib_table-0.0.2.tar.gz
Algorithm Hash digest
SHA256 b341c9bfd63e30c21d941b36dbcbfd867720463b4dd03bb3ae3ceee3c49e214a
MD5 e664636d131c77b365d18e4b2da6ea08
BLAKE2b-256 fb346f4dfcdd90aab3a1d024a69e0b756ae293bf2b3dfd04807fd792327f17c1

See more details on using hashes here.

File details

Details for the file matplotlib_table-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for matplotlib_table-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 09f4f8b8912d0917bd544d80c2ed486c271c7b467501ea584913312765fbdcf8
MD5 676cf401ed69fc3fae31d7685394293e
BLAKE2b-256 7016d65d56dc27cf8ad0ae6e119e4e7ea6edd63606ac0f84c8eb98bcd7177cec

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page