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.8.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.8-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mpldxf-1.0.8.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.8.tar.gz
Algorithm Hash digest
SHA256 26248bc00ee5d5ccc19cb93f10c024983bb4eaada619bfe336781b4f981be81b
MD5 cfe0358b189a53c070820aff3b285cde
BLAKE2b-256 9f9f029a80ed1de1566f95fa820349e7c7cf5727dd8a4efbb6652eb3c27708c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mpldxf-1.0.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 f44054cb2dcae70f422ccbac8d0ac0950e4e6abce70f1faee37d2443d2aa4e87
MD5 6d5e094a968e0465401e7b22b4db5774
BLAKE2b-256 9d05a053c41e0ded784f9b1d04e21ae32a4ece8872506172961887f42a7186a3

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