Skip to main content

A fork of mpldxf - a matplotlib backend to write DXF drawings. Modified by NGI to handle geotechnical plots

Project description

Matplotlib Backend for DXF

Overview

This is a Matplotlib backend that enables Matplotlib to save figures as DXF drawings. DXF is a drawing format commonly used by Computer-Aided Design (CAD) tools.

This package builds on the ezdxf package by Manfred Moitzi: ezdxf on Bitbucket

Installation of dependencies

The package dependencies can be installed with uv

uv sync --upgrade
source .venv/bin/activate

Usage

To use this backend, you first need to register it with Matplotlib:

import matplotlib
from mpldxf import backend_dxf

# Matplotlib registration takes a FigureCanvas *class* (no kwargs), so use the
# factory to configure options like subplot sub-blocks.
FigureCanvas = backend_dxf.make_figure_canvas(use_fm_layers=False, use_subplot_blocks=True)
matplotlib.backend_bases.register_backend("dxf", FigureCanvas)

Then, you can save a figure as a DXF file:

from matplotlib import pyplot as plt
plt.plot(range(10))
plt.savefig('myplot.dxf')

Feature flags

mpldxf can optionally write each subplot into its own DXF block (nested under a single main_plot block) to keep modelspace clean and make downstream CAD reuse easier.

  • Default: disabled
  • Enable (legacy “write directly to modelspace” behavior): pass use_subplot_blocks=True via backend_dxf.make_figure_canvas(...).

Warning

This package is a work in progress. Not all Matplotlib plot types will render correctly, and text alignment and sizing in particular may require adjustments.

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

mpldxf-1.0.9.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mpldxf-1.0.9-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file mpldxf-1.0.9.tar.gz.

File metadata

  • Download URL: mpldxf-1.0.9.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mpldxf-1.0.9.tar.gz
Algorithm Hash digest
SHA256 c45d8a65f5ae4f17243e5356120b3c1cf5a08cf476aaca1fa12e01db1ed33d61
MD5 184f0ee3f75ca2b3fe56233b6d980e1e
BLAKE2b-256 35e07863e03e20bf4fd03535954f2bf518d74fe137a659d8768b908565ad3146

See more details on using hashes here.

File details

Details for the file mpldxf-1.0.9-py3-none-any.whl.

File metadata

  • Download URL: mpldxf-1.0.9-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mpldxf-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 f7ba00a04393ce88a94458f415cacb986e2019f42b064089c93c0f35cbc2951d
MD5 7440df0abe40dba33710f8661e2874a9
BLAKE2b-256 0e6605b9b6acc316a60575016d5c56bb56618eb43cca7b7ce2ea1064af0204ac

See more details on using hashes here.

Supported by

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