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.10.tar.gz (14.2 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.10-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mpldxf-1.0.10.tar.gz
  • Upload date:
  • Size: 14.2 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.10.tar.gz
Algorithm Hash digest
SHA256 703e819615cd23cb106405ee68595e4da08b46daa642ca54e5da2056681f5c37
MD5 52dc6dbf04c4abbc7a7f5a09698e91d2
BLAKE2b-256 df9edd3353ae80faca693426738a00bd76d26ea3c80ca7626c95209d030d61fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mpldxf-1.0.10-py3-none-any.whl
  • Upload date:
  • Size: 16.1 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.10-py3-none-any.whl
Algorithm Hash digest
SHA256 2eba9c9509625db9dc8aed0d8a08bef3a05ee03bae8f496929682baf55945ff2
MD5 3d68fa2b4ff95db83a9ab49a501bc704
BLAKE2b-256 42fe374662ca34e0d67ca32d10521124a8fc36f64fbf15638729108d5f4f20f1

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