I'm converting a DXF file to a PNG below, but I want to increase the line
thickness.
The lines right now are approximately 1 pixel wide right now, I want to be able to make them 5 times as big.
I've tried soloutions from diffrent places like:
mpl.rcParams['lines.linewidth'] = 5 # set the value globally
mpl.rcParams['patch.linewidth'] = 5 # set the value globally
mpl.rcParams['hatch.linewidth'] = 5 # set the value globally
mpl.rcParams['axes.linewidth'] = 5 # set the value globally
A list of other soloutions i've tried:
1.
fig = plt.figure(linewidth=5)
2.
for ln in ax.lines:
ln.set_linewidth(5)
3.
for axis in ['top','bottom','left','right']:
ax.spines[axis].set_linewidth(5)
4.
[i.set_linewidth(5) for i in ax.spines.itervalues()]
But I got nothing to work properly.
Here's a working example:
main.py
from ezdxf.addons.drawing.matplotlib import MatplotlibBackend
from ezdxf.addons.drawing import Frontend, RenderContext
import ezdxf
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['lines.linewidth'] = 5 # set the value globally
mpl.rcParams['patch.linewidth'] = 5 # set the value globally
mpl.rcParams['hatch.linewidth'] = 5 # set the value globally
mpl.rcParams['axes.linewidth'] = 5 # set the value globally
dxffilepath = 'GT-001.DXF'
save_to = 'test.png'
def convert_dxf2img(path, save_to, img_format, img_res):
doc = ezdxf.readfile(path)
msp = doc.modelspace()
auditor = doc.audit()
if len(auditor.errors) != 0:
return
else:
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
ctx = RenderContext(doc)
ctx.set_current_layout(msp)
ctx.current_layout.set_colors(bg='#FFFFFF')
out = MatplotlibBackend(ax)
Frontend(ctx, out).draw_layout(msp, finalize=True)
fig.savefig(save_to, dpi=img_res)
plt.close(fig)
convert_dxf2img(dxffilepath, save_to, img_format='.png', img_res=300)
The lines are to thin, I want to make them 5 times as thick. Is there any way to do that?