Matplotlib 中可以输出 postscript 吗?例如这个小方 block :
newpath
0 0 moveto
1 0 lineto
1 1 lineto
0 1 lineto
0 0 lineto
stroke
我想在 Matplotlip 中加载此代码并在 IPython 上渲染它(只是一个示例)。
最佳答案
Matplotlib 有一个 Path
接口(interface),其工作原理非常相似:
http://matplotlib.org/users/path_tutorial.html
但是您必须加载文本并自己进行一些修改。但考虑这个例子:
import matplotlib.path as mpath
import matplotlib.patches as patches
import matplotlib.pyplot as plt
从示例中的字符串文本开始。
instr = """newpath
0 0 moveto
1 0 lineto
1 1 lineto
0 1 lineto
0 0 lineto
stroke"""
按换行符拆分,并删除第一行和最后一行。也许最后一个应该用于最终格式化?
verts = instr.split('\n')[1:-1]
verts
将每一行转换为坐标和代码。
code_lookup = {'moveto': mpath.Path.MOVETO,
'lineto': mpath.Path.LINETO}
coords = [(i.split(' ')[0], i.split(' ')[1]) for i in verts]
codes = [code_lookup[i.split(' ')[2]] for i in verts]
# set the last code to close the polygon
codes[-1] = mpath.Path.CLOSEPOLY
构造多边形。
mypath = mpath.Path(coords, codes)
mypatch = patches.PathPatch(mypath, facecolor='orange', lw=2)
绘制结果。
fig, ax = plt.subplots(subplot_kw={'aspect': 1.0,
'xlim': [-1,2],
'ylim': [-1,2]})
ax.add_patch(mypatch)
关于python - 使用 matplotlib 渲染 postscript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28854513/