Plotting¶
ezdwg can render DWG entities using matplotlib. Install the plotting extra:
pip install "ezdwg[plot]"
Basic Usage¶
From a Document¶
import ezdwg
doc = ezdwg.read("drawing.dwg")
doc.plot()
From a Layout¶
msp = doc.modelspace()
msp.plot()
From a File Path¶
import ezdwg
ezdwg.plot("drawing.dwg")
Parameters¶
The plot() function accepts the following parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
types |
str \| None |
None |
Entity type filter (e.g. "LINE ARC") |
ax |
matplotlib.axes.Axes \| None |
None |
Existing axes to draw on |
show |
bool |
True |
Call plt.show() after drawing |
equal |
bool |
True |
Use equal aspect ratio |
title |
str \| None |
None |
Plot title |
line_width |
float |
1.0 |
Line width for geometry |
arc_segments |
int |
64 |
Segments for arc approximation |
auto_fit |
bool |
True |
Auto-fit view to content |
fit_margin |
float |
0.04 |
Margin around content (fraction) |
dimension_color |
Any \| None |
"black" |
Color for dimension entities |
Saving to a File¶
Set show=False and use matplotlib to save:
import matplotlib.pyplot as plt
import ezdwg
doc = ezdwg.read("drawing.dwg")
ax = doc.plot(show=False)
plt.savefig("output.png", dpi=150, bbox_inches="tight")
Plotting Specific Types¶
# Only lines and arcs
doc.plot(types="LINE ARC")
# Only text entities
doc.plot(types="TEXT MTEXT")
Custom Axes¶
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 8))
doc = ezdwg.read("drawing.dwg")
doc.plot(types="LINE", ax=ax1, show=False, title="Lines")
doc.plot(types="ARC CIRCLE", ax=ax2, show=False, title="Arcs & Circles")
plt.tight_layout()
plt.show()
Color Handling¶
ezdwg resolves entity colors from:
- True color (24-bit RGB) — if present on the entity
- ACI color index — AutoCAD Color Index (1–255)
- Layer color — inherited from the entity's layer
Colors are applied automatically when plotting. ACI index 7 (white/black) is rendered as black for visibility on matplotlib's default light background.