我需要获取matplotlib图的输出并将其转换为我可以在激光切割机上使用的SVG路径.
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,100,0.00001)
y = x*np.sin(2*pi*x)
plt.plot(y)
plt.show()
Run Code Online (Sandbox Code Playgroud)
例如,下面您会看到一个波形.我希望能够将此波形输出或保存为SVG路径,以后我可以在Adobe Illustrator等程序中使用该路径.
我知道一个名为"Cairo"的SVG库,matplotlib可以使用(matplotlib.use('Cairo')),但是我不清楚这会让我访问我需要的SVG路径,即使matplotlib现在将使用Cairo来生成绘图.

我确实有cairo在我的系统上工作,并且可以成功绘制一个由SVG路径组成的示例,我确实可以在Illustrator中编辑它,但是我没有办法将上面的等式转换为SVG路径.
import cairo
from cairo import SVGSurface, Context, Matrix
s = SVGSurface('example1.svg', WIDTH, HEIGHT)
c = Context(s)
# Transform to normal cartesian coordinate system
m = Matrix(yy=-1, y0=HEIGHT)
c.transform(m)
# Set a background color
c.save()
c.set_source_rgb(0.3, 0.3, 1.0)
c.paint()
c.restore()
# Draw some lines
c.move_to(0, 0)
c.line_to(2 * 72, 2* 72)
c.line_to(3 * 72, 1 * 72)
c.line_to(4 …Run Code Online (Sandbox Code Playgroud)